liangxm 发表于 2014-12-5 10:44:43

网页图片获取

本帖最后由 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

樱花雪月 发表于 2014-12-5 11:30:15

多用搜索。。。

liangxm 发表于 2014-12-5 14:01:37

回复 2# 樱花雪月


    搜了,暂时没找到用ObjCreate("WinHttp.WinHttpRequest.5.1")的方法,能给个链接看看?

liangxm 发表于 2014-12-5 14:02:19

回复 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()

253357752 发表于 2014-12-5 15:10:32

不错啊。很实用啊。

haijie1223 发表于 2014-12-5 16:22:51

楼主是不是想下载一张图片~~

liangxm 发表于 2014-12-5 17:24:08

$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)

貌似搞定了- -

liangxm 发表于 2014-12-5 17:24:35

回复 7# haijie1223


    是的,不知道是不是我的方法。。。

kevinch 发表于 2014-12-5 17:57:30

回复 8# liangxm
你用xmlhttp下载得到的responsebody就是文本的二进制文本,直接以二进制方式写入个文件里就可以了

haijie1223 发表于 2014-12-5 20:10:50

方法太多了吧~8#正解

kevinch 发表于 2014-12-5 21:41:40

本帖最后由 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这个试一下

haijie1223 发表于 2014-12-6 10:33:24

InetGet("http://www.baidu.com/img/bdlogo.png", @DesktopDir&"\test.png")

jsgh1983 发表于 2014-12-10 11:56:58

难在获取图片地址吧?学习中。。。。

auoks 发表于 2020-9-17 11:10:26

666666666666666666

dingzz3 发表于 2020-11-18 11:23:22

au3对网页内的操控太弱了,但还不知道有没有更好的工具
页: [1]
查看完整版本: 网页图片获取