ddid
发表于 2009-7-23 07:05:18
原帖由 maper 于 2009-7-22 19:17 发表 http://web.pkuxkx.net/forum/images/common/back.gif
我败了。。。。
研究了一晚上,jpg转bmp已经有些眉目了,应该可以解决的(最笨的办法我已经实现了:找了一个jpg2bmp.exe,load windows_utils,lua脚本执行的时候同时转bmp),好一点的办法是luacom,不过还没研究出来。
另外一个问题是怎么取得网页中的.jpg文件呢?maper有没有什么办法?
笨办法的代码先贴上来:
...
-- convert image file from .jpg to .bmp
require "wait"
wait.make (function ()
convert_jpg2bmp()
wait.time (2)
-- loade .bmp image file
WindowLoadImage (win, "image1", "C:/wscript/2.bmp")
-- draw the .png graphic file into the window
WindowDrawImage (win, "image1", 3, 3, -3, -3, 2)
-- ensure window visible
WindowShow (win, true)
end)
end -- picture()
function convert_jpg2bmp()
-- load dll
assert (package.loadlib ("windows_utils.dll", "luaopen_windows_utils")) ()
-- execute file
assert (windows_utils.shell_execute ("jpg2bmp.exe", "2.jpg", "C:\\wscript"))
end -- convert_jpg2bmp ()
[ 本帖最后由 ddid 于 2009-7-23 07:57 AM 编辑 ]
ddid
发表于 2009-7-23 07:10:29
原帖由 zgbl 于 2009-7-22 23:36 发表 http://web.pkuxkx.net/forum/images/common/back.gif
ttk_00 ddid牛啊,另一个机器人大神诞生了
俺可一点都不牛啊,MUSH都是现学现卖,之前还有出错的时候,还老被抓到……
hzw
[ 本帖最后由 ddid 于 2009-7-23 05:59 PM 编辑 ]
maper
发表于 2009-7-23 10:30:01
http://www.gammon.com.au/forum/?id=7322
查找“How to get LuaSocket to work”,详细说明了如何使用lua访问网页,不过如何下载图片我还没研究出来,用这个应该也可以吧。
ddid
发表于 2009-7-23 15:07:26
哇哈哈~ 终于搞定图片转换了! hzk hzu hzt
所需组件:
1. Gammon提供的luacom
http://www.gammon.com.au/downloads/dlmushclient.htm
luacom.zip
2. MS WIA 2.0 SDK
http://www.microsoft.com/downloads/details.aspx?familyid=a332a77a-01b8-4de6-91c2-b7ea32537e29&displaylang=en
此组件在Windows下需要注册,注册方法见ReadMe.txt
代码如下:function test_wia()
-- load luacom
assert (package.loadlib ("luacom.dll","luacom_open")) ()
-- Instantiate WIA obejct
local Img = assert (luacom.CreateObject ("WIA.ImageFile"), "cannot open WIA.ImageFile")
local IP = assert (luacom.CreateObject ("WIA.ImageProcess"), "cannot open WIA.ImageProcess")
-- Load .jpg image file
Img:LoadFile("C:\\wscript\\1.jpg")
-- Set "Convert" as Filter
IP.Filters:Add(IP.FilterInfos("Convert").FilterID)
-- Set Convert format as BMP
IP.Filters(1).Properties("FormatID").Value = "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}"
-- Set the quality of the converted image
IP.Filters(1).Properties("Quality").Value = 100
-- Apply the Filter
Img = IP:Apply(Img)
-- Save the image as .BMP
Img:SaveFile("C:\\wscript\\11.bmp")
end -- test_wia()MUSHClient 4.40上运行通过。
SaveFile() 时需要注意,不能有同名文件,否则报错!
可以在画完Mini Window以后通过os.remove()来删除.BMP文件,以防止出错。
例如:os.remove("C:/wscript/11.bmp")
COM组件就是快啊,画mini window时,都不用wait了……
[ 本帖最后由 ddid 于 2009-7-23 04:34 PM 编辑 ]
ddid
发表于 2009-7-23 15:43:14
哈哈~ 个人的第一个精华帖!不枉我苦熬一宿的钻研呀……yct13
maper
发表于 2009-7-23 16:14:10
good,先借来用一用了。
我也已经搞定了下载图片的方法,抄的ttk_13
http://www.damnsmalllinux.org/f/topic-3-23-20213-0.html
ddid
发表于 2009-7-23 17:14:40
OK!
合成、传参、除错、发布机器人……
hze
ddid
发表于 2009-7-23 21:23:54
试了一下lua socket,发现lua socket抓下来的html和实际IE浏览的页面结果不同?
maper
发表于 2009-7-23 21:28:37
原帖由 ddid 于 2009-7-23 09:23 PM 发表 http://pkuxkx.net/forum/images/common/back.gif
试了一下lua socket,发现lua socket抓下来的html和实际IE浏览的页面结果不同?
是的 我也正为这个发愁,关键是那个验证网页抓下来的和浏览器源码不一样,找不到jpg的路径。
我以前是可以抓到的啊。
maper
发表于 2009-7-23 21:51:50
试了下winhttp,还是同样的结果yct12