中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [原]WIA转换图片格式JScript版及mshta单行命令版
作者:
标题: [原]WIA转换图片格式JScript版及mshta单行命令版 上一主题 | 下一主题
electronixtar
铂金会员





积分 7493
发帖 2672
注册 2005-9-2
状态 离线
『楼 主』:  [原]WIA转换图片格式JScript版及mshta单行命令版

这个帖子里 朋友们提到了需要一个命令版本的图片转换工具,于是研究了下写出来和大家分享。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 ]

   此帖被 +16 点积分       点击查看详情   
评分人:【 everest79 分数: +4  时间:2007-2-28 20:34
评分人:【 vkill 分数: +10  时间:2007-2-28 23:25
评分人:【 axi 分数: +2  时间:2007-3-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'>"
2007-2-28 15:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 2 楼』:  

谢谢老大,这会睡觉,晚上试

2007-2-28 20:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 3 楼』:  

electronixtar兄弟越来越牛了。

2007-3-1 00:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 4 楼』:  

2003好象不可以

2007-3-1 01:45
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 5 楼』:  

一切顺利,唯一有疑问的是有些机器上有,有些机器上没有,而我都是用同一张安装光盘装了的

2007-3-3 06:18
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chishingchan
银牌会员




积分 1282
发帖 538
注册 2002-11-2
状态 离线
『第 6 楼』:  

可以转换,不过转换后的质量跟不上原BMP图,请问有提高质量的参数吗?

2008-3-19 13:11
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yuan6319
新手上路





积分 3
发帖 15
注册 2008-11-20
状态 离线
『第 7 楼』:  

把图片质量那个5改成100看看

2010-3-3 17:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: