网页图片获取
本帖最后由 liangxm 于 2014-12-5 10:48 编辑$oIE1 = _IECreate($url)
$oImg = _IEImgGetCollection($oIE1, 0)
If $oImg.src =$url Then
$oPic = $oIE1.Document.body.createControlRange()
$oPic.Add($oImg)
$oPic.execCommand("Copy");;复制图片到剪贴板
$img = ClipGet();;从剪贴板得到图片
EndIf
通过_IECreate,_IEImgGetCollection(返回一个文档内IMG标签的对象变量集合)的方式获取网页里面的图片
不知道用
$xmlhttp = ObjCreate("WinHttp.WinHttpRequest.5.1")
$xmlhttp.open("GET", $url, False)
这样的方式该如何获取图片呢?
QQQ 多用搜索。。。 回复 2# 樱花雪月
搜了,暂时没找到用ObjCreate("WinHttp.WinHttpRequest.5.1")的方法,能给个链接看看? 回复 3# zhao_ming
嗯,我只是截取一段而已
_GDIPlus_Startup()
_ClipBoard_Open(0)
$iVerifyPics = _ClipBoard_GetDataEx($CF_BITMAP);;从剪贴板获取图片句柄
$iVerifyPics = _GDIPlus_BitmapCreateFromHBITMAP($iVerifyPics);;创建图片
;~ _ScreenCapture_Capture(@ScriptDir & "\GDIPlus_Image2.jpg", 413, 137, 594, 192)
_GDIPlus_ImageSaveToFile($iVerifyPics, @ScriptDir& "\"&$i&".bmp");;;保存图片到当前脚本目录
_ClipBoard_Close() 不错啊。很实用啊。 楼主是不是想下载一张图片~~ $xmlhttp.open("GET", $imgurl, False)
$xmlhttp.send()
$bData = Binary($xmlhttp.responseBody)
$Length = BinaryLen($bData)
$hData = _MemGlobalAlloc($Length, $GMEM_MOVEABLE)
$pData = _MemGlobalLock($hData)
$tData = DllStructCreate('byte[' & $Length & ']', $pData)
DllStructSetData($tData, 1, $bData)
_MemGlobalUnlock($hData)
$pStream = _WinAPI_CreateStreamOnHGlobal($hData)
_GDIPlus_Startup()
$hImage = _GDIPlus_BitmapCreateFromStream2($pStream)
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
_ScreenCapture_SaveImage(@ScriptDir & "\Image.bmp", $hBitmap, True)
貌似搞定了- - 回复 7# haijie1223
是的,不知道是不是我的方法。。。 回复 8# liangxm
你用xmlhttp下载得到的responsebody就是文本的二进制文本,直接以二进制方式写入个文件里就可以了 方法太多了吧~8#正解 本帖最后由 kevinch 于 2014-12-5 21:43 编辑
$url="http://www.autoitx.com/templates/thesnoW/images/logo.png"
$xmlhttp=ObjCreate("msxml2.xmlhttp")
If IsObj($xmlhttp) Then
$xmlhttp.open("GET",$url,True)
$xmlhttp.send
While $xmlhttp.readystate<>4
Sleep(100)
WEnd
If $xmlhttp.status=200 Then
$tmp=StringRegExp($xmlhttp.getresponseheader("Content-Type"),"(?is)image\/(.+)",3)
If IsArray($tmp) Then
$file=FileOpen(@ScriptDir&"\temp."&$tmp,2+8+16)
FileWrite($file,$xmlhttp.responsebody)
FileClose($file)
ShellExecute(@ScriptDir&"\temp."&$tmp)
EndIf
EndIf
EndIf这个试一下 InetGet("http://www.baidu.com/img/bdlogo.png", @DesktopDir&"\test.png") 难在获取图片地址吧?学习中。。。。 666666666666666666 au3对网页内的操控太弱了,但还不知道有没有更好的工具
页:
[1]