当前位置:首页 » 图片知识 » 编程如何批量处理图片
扩展阅读
女生和渣男搞笑图片 2023-08-31 22:07:09
嘻嘻长什么样图片 2023-08-31 22:06:10

编程如何批量处理图片

发布时间: 2023-03-30 01:18:08

❶ 几百张图片为2560*1920,第一张调成709*531,第二张调成926*695 ,像素数据在excel,如何编程批量处理

每一张图要调成的分辨都不同?你稍微凳粗会点PS的话,装个按键精灵可以拆滑解决,先记录操作一次,记录的最后一步删掉EXCEL第一行的数据就枣御镇好

但是你要考虑图案是否按比例缩放这个问题

❷ 如何批量提取图片文件名后加序号

其实这个简单,不用编程,
就是先提取文件名,然后灌入电子表,然后加编号
,然后做成每行是,命令,原名,新名的格式,然后输出,做在BAT文件,执行一下就好

❸ 请问怎么 才能在EXCEL中把图片批量并且居中的放在单元格中

可以通过VBA实现,点击【开发工具】,【Visual Basic】打开VBA编辑器,也可以使用【Alt+F11】组合键打开VBA编辑器。双击“模块1”,复制以下代码。然后插入按钮,指定宏即可。

代码如下

SubInsertPic()

'ExcelHomeVBA编程学习与实践by:看见星光

DimArr,i&,k&,n&,pd&

DimstrPicName$,strPicPath$,strFdPath$,shpAsShape

DimRngAsRange,CllAsRange,RgAsRange,strWhereAsString

'OnErrorResumeNext

'用户选择图片所在的文件夹

WithApplication.FileDialog(msoFileDialogFolderPicker)

If.ShowThenstrFdPath=.SelectedItems(1)Else:ExitSub

EndWith

IfRight(strFdPath,1)<>""ThenstrFdPath=strFdPath&""

SetRng=Application.InputBox("请选择图片名称所在的单元格区域",Type:=8)

'用户选择需要插入图片的名称所在单元格范围

SetRng=Intersect(Rng.Parent.UsedRange,Rng)

'intersect语句避免用户选择整列单元格,造成无谓运算的情况

IfRngIsNothingThenMsgBox"选择的单元格范围不存在数据!":ExitSub

strWhere=InputBox("请输入图片偏移的位置,例如上1、下1、左1、右1",,"右1")

'用户输入图片相对单元格的偏移位置。

IfLen(strWhere)=0ThenExitSub

x=Left(strWhere,1)

'偏移的方向

IfInStr("上下左右",x)=0ThenMsgBox"你未输入偏移方位。":ExitSub

y=Val(Mid(strWhere,2))

'偏移的值

SelectCasex

Case"上"

SetRg=Rng.Offset(-y,0)

Case"下"

SetRg=Rng.Offset(y,0)

Case"左"

SetRg=Rng.Offset(0,-y)

Case"右"

SetRg=Rng.Offset(0,y)

EndSelect

Application.ScreenUpdating=False

Rng.Parent.Select

ForEachshpInActiveSheet.Shapes

'如果旧图片存放在目标图片存放范围则删除

IfNotIntersect(Rg,shp.TopLeftCell)IsNothingThenshp.Delete

Next

x=Rg.Row-Rng.Row

y=Rg.Column-Rng.Column

'偏移的坐标

Arr=Array(".jpg",".jpeg",".bmp",".png",".gif")

'用数组变量记录五种文件格式

ForEachCllInRng

'遍历选择区域的每一个单元格

strPicName=Cll.Text

'图片名称

IfLen(strPicName)Then

'如果单元格存在值

strPicPath=strFdPath&strPicName

'图片路径

pd=0

'pd变量标记是否找到相关图片

Fori=0ToUBound(Arr)

'由于不确定用户的图片格式,因此遍历图片格式

IfLen(Dir(strPicPath&Arr(i)))Then

'如果存在相关文件

Setshp=ActiveSheet.Shapes.AddPicture(_

strPicPath&Arr(i),False,True,_

Cll.Offset(x,y).Left+5,_

Cll.Offset(x,y).Top+5,_

20,20)

shp.Select

WithSelection

.ShapeRange.LockAspectRatio=msoFalse

'撤销锁定图片纵横比

.Height=Cll.Offset(x,y).Height-10'图片高度

.Width=Cll.Offset(x,y).Width-10'图片宽度

EndWith

pd=1'标记找到结果

n=n+1'累加找到结果的个数

[a1].Select:ExitFor'找到结果后就可以退出文件格式循环

EndIf

Next

Ifpd=0Thenk=k+1'如果没找到图片累加个数

EndIf

Next

Application.ScreenUpdating=True

MsgBox"共处理成功"&n&"个图片,另有"&k&"个非空单元格未找到对应的图片。"

EndSub

小提示:

1,该段小代码支持一下图片格式:

".jpg",".jpeg",".bmp",".png",".gif"

2,图片的纵横比是未锁定的,如需锁定,可以注释掉下句代码:

.ShapeRange.LockAspectRatio=msoFalse

❹ 如何将bmp格式的图片一次性批量插入Excel的每个的sheet页里去呢(最好是隔一个sheet一张图片)

用VBA处尺升搏陵祥理,需编程。笑宽

参考下面

Excel怎样查找图片

❺ 请电脑编程高手指点下,我有很多图片要重命名并且分别移动到相对应的文件夹下,怎么批处理一键搞定呢

我们平时重命名文件,通常就是点击右键,然后点击重命名;或者用快捷键“F2”。使用方法非常简单,但是如果遇到有很多文件需要重命名,一个个操作是很不明智的,我们可以才需批量重命名的方法。
案例:
通常,我们要为各式各样的照片做下面这样的工作。比如说,在科西嘉度假的时候你照了大量的数码照片,而你的照相机偏偏将它们自动命名为DSCN0595.jpg、DSCN0596.jpg,等等。你肯定希望能把它们改成更加易认,好记的名字。你当然可以一个一个地把它们改成例如“我和朱莉在灯塔前.jpg”,“再一次在酒吧聚会.jpg”等等。但如果这些照片不燃缺是寥寥稿唤几张的话,这样做无疑会耗费掉大量的宝贵时间。相对较好的折中方案是将这些照片取名为“科西嘉2006-1.jpt”,“科西嘉2006-2.jpt”等等。
这里还有其他几件事要注意。首先“取消重命名”在这里一次只能取消一个文件,而且只能用在最后命名的十个文件上。所以如果要重命名的文件数键段凯量多于十个,你最好在改名之前,先将照片在其他目录做个备份。文件命名的顺序依据屏幕上文件的显示顺序,也就是说如果浏览器中文件按日期倒序排列的,那么重命名之后,第一个文件将会是日子最近的那个文件。又或者,你在右键点击菜单的时候不是点击第一个文件,而是点在了中间某个文件的话,那么重命名将从这个文件开始,顺序排到最后一个文件,然后再从第一个文件排下来。

这里需要注意的是,你必须为第一个文件指定一个扩展名,但是对于其他文件,重命名命令并不会影响到它们原有的扩展名。所以如果你的这些文件是不同类型混放的话,重命名只会修改文件名部分使之保持一致,而扩展名并不做改动。如果你觉得第一个文件名后面没有编号很突兀,也可以将其命名为“科西嘉 2006(0).jpg”。你可以任意指定括号中的起始编号,后面的重命名过程会自动从该编号开始顺序排下去。