中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-20 00:01
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [原]WIA转换图片格式JScript版及mshta单行命令版 查看 2,522 回复 6
楼 主 [原]WIA转换图片格式JScript版及mshta单行命令版 发表于 2007-02-28 15:29 ·  中国 四川 成都 电信
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
20年会员
UID 42173
性别 男
状态 离线
这个帖子里 朋友们提到了需要一个命令版本的图片转换工具,于是研究了下写出来和大家分享。mshta可以直接用命令行参数插入WSH/VBS/JS代码,所以先发一个Javascript原型:


//原始文件的WIA对象
var WiaFile=new ActiveXObject('WIA.ImageFile');
//载入原始图片
WiaFile.LoadFile('Bliss.bmp');

//WIA图片处理对象
var WiaProcess=new ActiveXObject('WIA.ImageProcess');
//这里的CLSID表示添加了一个转换图片格式的filter
WiaProcess.Filters.Add('{42A6E907-1D2F-4b38-AC50-31ADBE2AB3C2}');
//WIA filter属性对象
var WiaFilterProperties=WiaProcess.Filters(1).Properties
// 这里的CLSID表示转换成的图片格式
WiaFilterProperties('FormatID').Value='{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}';
//转换质量,最好为100,几乎没有变化,但是文件体积比较大
WiaFilterProperties('Quality').Value=5;

//保存为另一个WIA对象
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 ]
本帖最近评分记录 (共 3 条) 点击查看详情
评分人分数时间
everest79 +4 2007-02-28 20:34
vkill +10 2007-02-28 23:25
axi +2 2007-03-18 23:25

C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
2 发表于 2007-02-28 20:32 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线
谢谢老大,这会睡觉,晚上试
3 发表于 2007-03-01 00:39 ·  中国 广东 东莞 电信
银牌会员
★★★
积分 1,179
发帖 442
注册 2006-09-09 22:47
19年会员
UID 62249
状态 离线
electronixtar兄弟越来越牛了。
4 发表于 2007-03-01 01:45 ·  中国 甘肃 兰州 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
2003好象不可以
5 发表于 2007-03-03 06:18 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线
一切顺利,唯一有疑问的是有些机器上有,有些机器上没有,而我都是用同一张安装光盘装了的
6 发表于 2008-03-19 13:11 ·  中国 广东 东莞 电信
银牌会员
★★★
积分 1,282
发帖 538
注册 2002-11-02 00:00
23年会员
UID 129
性别 男
状态 离线
可以转换,不过转换后的质量跟不上原BMP图,请问有提高质量的参数吗?
7 发表于 2010-03-03 17:35 ·  中国 广东 惠州 电信
新手上路
积分 3
发帖 15
注册 2008-11-20 11:51
17年会员
UID 131528
性别 男
状态 离线
把图片质量那个5改成100看看
论坛跳转: