在
这个帖子里 朋友们提到了需要一个命令版本的图片转换工具,于是研究了下写出来和大家分享。mshta可以直接用命令行参数插入WSH/VBS/JS代码,所以先发一个Javascript原型:
var WiaFile=new ActiveXObject('WIA.ImageFile');
WiaFile.LoadFile('Bliss.bmp');
var WiaProcess=new ActiveXObject('WIA.ImageProcess');
WiaProcess.Filters.Add('{42A6E907-1D2F-4b38-AC50-31ADBE2AB3C2}');
var WiaFilterProperties=WiaProcess.Filters(1).Properties
WiaFilterProperties('FormatID').Value='{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}';
WiaFilterProperties('Quality').Value=5;
var WiaFile2 =WiaProcess.Apply(WiaFile);
WiaFile2.SaveFile('BlissCompressed2.jpg');
那么写成mshta版就是:
mshta "javascript:var i=new ActiveXObject('WIA.ImageFile');i.LoadFile('Bliss.bmp');var x=new ActiveXObject('WIA.ImageProcess');x.Filters.Add('{42A6E907-1D2F-4b38-AC50-31ADBE2AB3C2}');with(x.Filters(1)){Properties('FormatID').Value='{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}';Properties('Quality').Value=5;}x.Apply(i).SaveFile('BlissCompressed2.jpg');window.close();"
使用时请代码中的 bliss.bmp 改成目标图片文件名称,BlissCompressed2.jpg改成保存为的文件名。代码中表示转换为的格式的CLSID:
BMP {B96B3CAB-0728-11D3-9D7B-0000F81EF32E}
PNG {B96B3CAF-0728-11D3-9D7B-0000F81EF32E}
GIF {B96B3CB0-0728-11D3-9D7B-0000F81EF32E}
JPEG {B96B3CAE-0728-11D3-9D7B-0000F81EF32E}
TIFF {B96B3CB1-0728-11D3-9D7B-0000F81EF32E}
可能需要WIA运行库:
http://download.microsoft.com/download/WinXPHome/Utility/2.0/WXP/EN-US/WIAAutSDK.zip
用 regsvr32 wiaaut.dll 注册该组件
Last edited by electronixtar on 2007-3-1 at 09:30 AM ]