VBA实现批量图片格式转换

本文介绍了如何利用VBA的WIA库实现批量图片格式转换,通过几行代码即可轻松将JPG转换为PNG,无需借助复杂的图像处理软件如PS。只需调整代码中的路径和目标格式,即可应用于不同文件和格式的批量转换。

提到图片格式转换,大家肯定会想到大名鼎鼎的PS,只是为了转换图片格式,就需要再电脑中安排这么一个庞然大物,并且其操作界面有些太专(复)业(杂),逐个打开图片文件进行操作,也比较耗费时间,其实VBA中也可以轻松实现批量图片格式转换。

WIA的滤镜功能可以轻松实现图片格式转换,几行代码将够用了。
示例代码如下。

Sub Demo()
    Dim objWIA_IMG As Object
    Dim objWIA_PRO As Object
    Const STR_WIA_BMP = "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}"
    Const STR_WIA_PNG = "{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}"
    Const STR_WIA_GIF = "{B96B3CB0-0728-11D3-9D7B-0000F81EF32E}"
    Const STR_WIA_JPEG = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}"
    Const STR_WIA_TIFF = "{B96B3CB1-0728-11D3-9D7B-0000F81EF32E}"
    Set objWIA_IMG = CreateObject("WIA.ImageFile")
    Set objWIA_PRO = CreateObject("WIA.ImageProcess")
    objWIA_IMG.LoadFile "C:\Temp\1.jpg"
    objWIA_PRO.Filters.Add objWIA_PRO.FilterInfos("Convert").FilterID
    objWIA_PRO.Filters(1).Properties("FormatID").Value = STR_WIA_PNG
    Set objWIA_IMG = objWIA_PRO.Apply(objWIA_IMG)
    On Error Resume Next
    Kill "C:\Temp\1.png"
    On Error GoTo 0
    objWIA_IMG.SaveFile "C:\Temp\1.png"
    Set objWIA_IMG = Nothing
    Set objWIA_PRO = Nothing
End Sub

【代码解析】
第4~8行代码定义图片格式相关常量。
第9行代码创建WIA.ImageFile对象,用于加载图片。
第10行代码创建WIA.ImageProcess对象,用于转换图片格式。
第11行代码加载JPG图片文件。
第12行代码增加转换滤镜。
第13行代码设置滤镜格式为PNG。
第14行代码应用转换滤镜实现图片格式转换。
第15~17行代码删除目标文件,以避免称重名文件产生运行时错误。
第18行代码将转换后的图片保存为PNG文件。
第19~20行代码释放对象变量占用的系统资源。


批量处理图片文件,只需要使用Dir或者FSO获取文件名,再由循环结构依次处理即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值