Jump to content

Recommended Posts

Posted

I am trying to write a macro to auto-tag images in my library. I am looking for a way to search google images, but NOT trying to get images - I instead want to search an image and get possible words for it.

Things I've tried:

  • I've searched the forums, but almost every hit was searching a phrase to get images - I want to do the opposite.
  • I found two threads on it, One had no answer, and the other used the winhttp udf - which I can never get to work properly :/
  • I could try using IE functions, but it's messy and there's no way to do it completely in the background, which is much preferred :/

Does anyone have any suggestions? Or should I suck it up and use IE?

0x616e2069646561206973206c696b652061206d616e20776974686f7574206120626f64792c20746f206669676874206f6e6520697320746f206e657665722077696e2e2e2e2e

Posted (edited)

I know how much you guys love code. I found a pics,it example on the forum, and tried changing it to work for the google search-by-image url / request. This is what I got

#include <WinHTTP.au3>
#include <zlib.au3>

;~ http://pics.lt/index.php?lang=english

Global $sBoundary = '--' & _GenerateAlphaNumericRandomString ( 50 )

$sImagePath = @ScriptDir&"\0.jpg"
If Not FileExists ( $sImagePath ) Then Exit 1

$sDirectLink = _PicsItUpload ( $sImagePath )
ConsoleWrite ( 'Direct Link : ' & $sDirectLink & @Crlf )
If $sDirectLink Then ShellExecute ( $sDirectLink )

Func _PicsItUpload ( $sImagePath )
    If FileGetSize ( $sImagePath ) > 10*1024*1024 Then Return -1 ; max 10 MB
    Local $ReceivedData = Binary ( '' ), $chunk, $iExtended


    Local $hOpen = _WinHttpOpen ()
    Local $hConnect = _WinHttpConnect ( $hOpen, 'images.google.ca' )
    Local $hRequest = _WinHttpOpenRequest ( $hConnect, 'POST', '/searchbyimage/upload', 'HTTP/1.1' )
    _WinHttpAddRequestHeaders ( $hRequest, 'Referer: http://images.google.ca/' )
    _WinHttpAddRequestHeaders ( $hRequest, 'Accept-Encoding: gzip, deflate' )
    Local $sDataToSend = _PicsItSetDataToSend ( $sImagePath )
    If Not @error Then
        _WinHttpAddRequestHeaders ( $hRequest, 'Content-Length: ' & StringLen ( $sDataToSend ) )
        Local $sContentType = 'Content-Type: multipart/form-data; boundary=' & StringTrimLeft ( $sBoundary, 2 )
        _WinHttpSendRequest ( $hRequest, $sContentType, $WINHTTP_NO_REQUEST_DATA, StringLen ( $sDataToSend ) )
        _UploadProgress ( $hRequest, $sImagePath, $sDataToSend )
        If Not @error Then
            _WinHttpReceiveResponse ( $hRequest )
            If _WinHttpQueryDataAvailable ( $hRequest ) Then

                Local $sHeader = _WinHttpQueryHeaders($hRequest) ; ...get full header
                While 1
                    $chunk = _WinHttpReadData ( $hRequest, 2, 1024 )
                    If Not @extended Then ExitLoop
                    $ReceivedData &= $chunk
                WEnd
                $ReceivedData = BinaryToString ( _ZLIB_GZUncompress ( $ReceivedData ), 1 )
            EndIf
        EndIf
    EndIf
    _WinHttpCloseHandle ( $hRequest )
    _WinHttpCloseHandle ( $hConnect )
    _WinHttpCloseHandle ( $hOpen )
    If $sHeader Then
        ConsoleWrite("Recieved"&@CRLF&$sHeader&@CRLF)
;~         Local $aRet = StringRegExp ( $ReceivedData, '(?s)(?i)codedirect" value="(.*?)"', 3 )
;~         If Not @error Then Return $aRet[0]
    EndIf
EndFunc ;==> _PicsItUpload ()

Func _PicsItSetDataToSend ( $sFilePath )
    If Not FileExists ( $sFilePath ) Then Return SetError ( -1 )
    Local $hFile = FileOpen ( $sFilePath )
    If $hFile = -1 Then Return SetError ( 1, 0, 0 )
    Local $sData = FileRead ( $hFile )
    FileClose ( $hFile )
    Return $sBoundary & @CRLF & _
        'Content-Disposition: form-data; name="fileName[]"' & @CRLF & @CRLF & $sFilePath & @CRLF & $sBoundary & @CRLF & _
        'Content-Disposition: form-data; name="file[]"; filename="' & _FileGetFullNameByFullPath ( $sFilePath ) & '"' & @CRLF & _
        'Content-Type: image/jpeg' & @CRLF & @CRLF & $sData & @CRLF & $sBoundary & @CRLF & _
        'Content-Disposition: form-data; name="alt[]"' & @CRLF & @CRLF & _FileGetNameWithoutExtByFullPath ( $sFilePath ) & @CRLF & $sBoundary & @CRLF & _
        'Content-Disposition: form-data; name="submit"' & @CRLF & @CRLF & 'Upload' & @CRLF & $sBoundary
EndFunc ;==> _PicsItSetDataToSend ()

Func _UploadProgress ( $hRequest, $sPicPath, $sDataToSend )
    If Not FileExists ( $sPicPath ) Then Return SetError ( -1 )
    Local $sDatas = StringToBinary ( $sDataToSend )
    Local $iNumberOfBytesToSend = 1024
    Local $Bin, $iStart = 1, $iExtended = 0
    While 1
        $Bin = BinaryMid ( $sDatas, $iStart, $iNumberOfBytesToSend )
        If BinaryLen ( $Bin ) = 0 Then Return
        _WinHTTPWriteData ( $hRequest, $Bin, 1 )
        If Not @error Then
            $iExtended += @extended
            ConsoleWrite ( '+ $iPercent : ' & Round ( ( $iExtended  ) / ( StringLen ( $sDataToSend ) ) * 100, 2 ) & @Crlf )
            $iStart += $iNumberOfBytesToSend
        Else
            $Bin = 0
            Return SetError ( 1 )
        EndIf
    WEnd
EndFunc ;==> _UploadProgress ()

Func _FileGetNameWithoutExtByFullPath ( $sFullPath )
    Local $aPathSplit = StringSplit ( $sFullPath, '\' )
    If Not @error Then Return StringLeft ( $aPathSplit[UBound($aPathSplit)-1], StringInStr ( $aPathSplit[UBound($aPathSplit)-1], '.', 0, -1 ) - 1 )
EndFunc ;==> _FileGetNameWithoutExtByFullPath ()

Func _FileGetFullNameByFullPath ( $sFullPath )
    Local $aFileName = StringSplit ( $sFullPath, '\' )
    If Not @error Then Return $aFileName[$aFileName[0]]
EndFunc ;==> _FileGetFullNameByFullPath ()

Func _GenerateAlphaNumericRandomString ( $iLen )
    Local $sString = ''
    Do
        Switch Random ( 1, 3, 1 )
            Case 1
                $sString &= Chr ( Random ( 48, 57, 1 ) )  ; 0 to 9
            Case 2
                $sString &= Chr ( Random ( 65, 90, 1 ) )  ; A to Z
            Case 3
                $sString &= Chr ( Random ( 97, 122, 1 ) ) ; a to z
        EndSwitch
    Until StringLen ( $sString ) = $iLen
    Return $sString
EndFunc ;==> _GenerateAlphaNumericRandomString ()

It appears to work. When I look at  it gives me

HTTP/1.1 200 OK
Cache-Control: private, max-age=0
Date: Mon, 07 Jul 2014 07:51:09 GMT
Transfer-Encoding: chunked
Content-Type: text/html; charset=ISO-8859-1
Expires: -1
Server: gws
Set-Cookie: PREF=ID=c64ec6a73aa70b5d:U=9a78a2518fc3dcb0:FF=0:TM=1404719469:LM=1404719469:S=dndXYXDxpnyGV3G1; expires=Wed, 06-Jul-2016 07:51:09 GMT; path=/; domain=.google.ca
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alternate-Protocol: 80:quic

when what I should get is

Alternate-Protocol:80:quic
Cache-Control:public, max-age=21600
Content-Length:1759
Content-Type:text/html; charset=UTF-8
Date:Mon, 07 Jul 2014 07:14:32 GMT
Expires:Mon, 07 Jul 2014 13:14:32 GMT
Location:http://images.google.ca/search?tbs=sbi:AMhZZitHkEabunchofcraphere
Server:quimby_frontend
X-Content-Type-Options:nosniff
X-Frame-Options:SAMEORIGIN
X-XSS-Protection:1; mode=block 

What I need that I'm missing is the Location:http://images.google.ca/search?tbs=sbi:AMhZZitHkEabunchofcraphere, because that tells me where to go next. I'm thinking my request must not be right, but I can't tell hoe. Any ideas?

EDIT: Further investigation makes me think it's not returning the location, because the upload isnt working, because something wrong with how I formatted the request payload / content, so I'm trying to make it look exactly how chrome tells me the request looks.See next post

Edited by corgano

0x616e2069646561206973206c696b652061206d616e20776974686f7574206120626f64792c20746f206669676874206f6e6520697320746f206e657665722077696e2e2e2e2e

Posted (edited)

I've been messing around the wth the payload data of the request, trying to get it to match what chrome shows is sent, but I hit a snag at 'Content-Type: application/octet-stream'.

What I'm supposed to be sending is this:

_9j_4AAQSkZJRgABAQEASABIAAD_2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL_2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL_wAARCAB4AKADASIAAhEBAxEB_8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL_8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4-Tl5ufo6erx8vP09fb3-Pn6_8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL_8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3-Pn6_9oADAMBAAIRAxEAPwDxzXUntJFs2nMq7d-Saw810OqaPcmWKQNv81ckscBOcDJNZL2UolZAqZR9hIYEZ-vSsqLvBHXioyVR3KygscDvXTjRJ9P1TT3eRWaVkDIv8IOAR_OsGOxuX8zZGxeI_PGB8wHrj0rs9OuY51tpXkaQxxgghhuB6d_c1NecotW2NMFRhWbjLfocVLBhDLHnYG24PUen8ql0-H7StzExwqwvKD6FRn9en411mvxaVFGbSAshwP4Vbke-Rz_jXOzqmnWDRRSK812PmKn7sWQQPYkjn2A9auMuZCxeF9hKydzJAJ6VK1vMoyUO31HI_Oujl8BeJbUbpdMcJsVwwdWBVhkEEHkUj2mr2mkKBbSAeYxYqoICjHX8d35GqbZlTpJxvO6Odkt5YlRnXAcZBz2prJsxz1rZ0w3WpSLbBUcFySWAwBxn8OBW9eeD7aOyhdbglsEv5fzkH0xxitYUpzV0tDopYGdaDnS1XmcdsLabuH8EuG_Ecf8AoJq1p-jXOp2s8loqs8GC6tKqkg9NoPJ6HNXrPThtubSORZHugkabvlC_MDuPvxj8T-L7KzNhqotLgL5hnQFcggKpySfbH6ZrFysY_V5RfvqxUPhy8gi33KrET91TIufxGa3ok-xWNhbSMY2aB2BIx1kcE_iAPyrOQ38cU6SsIrWUEGSRckg4OVB6kjv79RVSa9M86mNSkUaCONDzhR6-5JJPuTWUnJ6pnRCNJaWL1zFC0jSRyD5VHFZSuFlaZDgE9BxikMp3EE8VVV8eYM8ZxRFNrUKkowacS8rK7ZkTfuHAzzmpri3P2uKORM4VVZsdKpbmjkjOeRjpVj7VNcXQG8qu4fpSaaHzc9jpmsIhCiqnG3FU10aEMXQFeDkVpW9wkkR-YHAx1pykLtB6HiuNza2Lce5S1axuWtbe7u7oNYviOIeYF2gLxkfgax5LK3t7yGWxmaSORvmiPzfJk5BPGeMdqyG1K5kEUc0ryRRHKoTwKlstSksb1LqKKNipyFkXco_A8GvShFpWOadaFX4jbNnLdQH-zLG5vbuQJ--ihYmILxxjPJxUkGm39vrDH7O0U0tu3mRsu0pJt7jt8wBrd0nXr3WpZLuGUfa1QlgkxiKgEAcDsPXp64p9pFrGo3smoRWTyXDgwsk7gGSUdCpJ5PY_hWdSbb5Y6s61SoJxkpfd0JfDmmQvC17qaQTyzo0EZPJIAXnBHB6D2zWvq-lW9xptvJZaNbvPA0aN5KfvWyQQdoXBwO5_WsG_vzLJYWW0Qny5BFGgwyncWbfnvn-QrrtFmlh0yWYwgahHEiSNt3ABFJUtjuwKj1yKzWIlFWsaOlDlUuZO71Nmz03WbjQmg1SYMxbiAy7BwOASmeM15_e-BtZl8Y3UEUBk01uUleQ-WQ644LEkkEkevFbl5qGuSX1nal7cC4QSAIxAUEZGRgYzk4-lbGja1Iba5je5RZFzCkipuAOOoB69R3rJYm8rSLnhYTp_u5anM6b8ILu3ljk1K-8pIxuZYCVLE9eT0HQe_tWX4s8N3un-IlsbeWW3sEtvPeVpCQFGcknPUkYH4V6fqV7Lq0ccWl6qsE9vgvE55fjgZ5xWF4lll1HTbAXUZaWK7RbpEODtAJJx3xzweOa2eJ6RZ57pVqStseUeG9OutWuViRA7ySCKEt_f6kj1wOTngV6ZZfC_So45JNS1G4VznzBBxuB7bmBJH0A_Gm2Hh_wvaabZwCOe7kTe4ug7RMuDnHyngg4Prx-Fat1qcep6bJG8OLaSL78QO9T6hu5Hv1wayq1dbRdj0sNgqk6alUWhyPifwHcysbvQ7k31p0aIgB4gOgUDqMfjXH_2LtvYIFmDxSBGkkxzCD97j25rstOttdtdTnsba9nkC4bzVG0FT9085_zxXV6LoMt1YXENzaqIyrGaRnww3d_r3qY1fesznxdFR1geD3SNDMA24c5GRjIqCNd0wQnhjXoPxI8MSaPDa3v2z7VHJIY8FApBxkdMe_auBgjZ7qMAc5HFdcX7tzzbtuxrjR3KtIZBgDgDrmo4LeZXMXlkzZ6GtFlzZFZJ8NHz8vfFVrOSVd8pdieuTzxXN7STizvpe4zV023dE2zR4z8wz3q5IyhuhwBnOaoW91JJcoWJx0xVmRt90q5yuOnrXO029SpSu7nAshR9rjBBrr49Ht7rQGa2lil8sBn2n5gfcVgW9kbmGPzpkhQnCStkgDuDinaebm3uysVw8SIwaSRCQNgPX3_-vXo1YuaXK7NHNha31dtzjdSVjZsVttEu4LuCZ3lBD4KADGcYJz3Ge1ekrrFvE8dxbC4tkk-5uA2NL1yOOuGBznvXlNzcWsl232VDPC_zM1w5GMnphdv8zXZ6fe3N_YW8VusaxMqr5Y5Ugccg5PBB_wAeKybdNqTZ6OGdKtO0Y8se7ditqM0-p6vFaz6RDbyyzMftSMx2kj5ioGAMgdDXoejRNofhq1RgLjyzlsgc8_e_D9MVjWOnatDc3B1HSBLdHEsc0txtXj5cfKwBJA71uiPU4limZlhRWH7reGwpBB-oy3tmubEJ1rJaJGNanOlU5Iq6fbqczqx-138puW-xbRut5UBO4gjrj1z-grPsfD11qlzbFnENpBKQ8hPOTyQo6luAPyruoodPa1mgjtFl2ZMjE8E_7Oence1MnuILi0gljtxGruduMKFI4zx1-tYRi4r3jtw-HnFu-iZT1CTSdOtYJbS0SOSGby2dfvSk4HJzk8EHnpirKBJfCdxqMqGJnZVLA53cj19Tj8jXOX_mGefEgWNP3h3qQok3BgCexOPoMjNS3F5fxaIbO9uoUSYiRY448iPsBnPGNvT3_GiVOVWLUdDodByrRUNbaiatcxPDFAk5XbCrKn93jGeOo55ql9juI1C_Z1jiZAysEJWRCPXr_ntWfoFvLeeJLiXUxsgtYNvmZBGT90ge4ya6g21pqF4jWF80bx_KxkYucZPP1BOcUnBxaUnqdlHEXVrWSJb_AFmDS9HtQwG1hguo-VQPX05NGm66I4TbXc-5sZZkJGKe8zaVeG3nnErSKNoVeZOvI7DI4x7Vg-INGmtI4LzRpJIVkz50KoGWMt8wKYHC8npx7VtyJ6mFWUIR95Xizu4zpt7BbmeyhuSAWV5kDYyccZyBxxXkniO0tZvGF8dMsVhWMBSsI-XcODgD1bjA712EI1rTvDom-zPdyqn7tITk-xIznGfbpWj4XfR9M157RyYrmZ_9IucfMWxyq_3RnP69e7py5k7PTY8KeHcpynSV0tTyTXYNQ09Utry1mtppQCBLGUJX15rOif5VjAILcZzXrXxkiN0mmy21sPsyFx5ir9wkAYJ9_wBcV55Y-GtR1BDdWsJMMYzubjcR_Cvqa6Yx0sjl5m9WPt0Iljz2pY3LSs3vx7VZurG7sPs7zwmMSqWXJGfxHb8azLu4FtaMxIDNwBXO4tysby93ci_sy5_soQyzsEiy6xlsID349cd6yILm4kDWcMXmrKQPLCkscZxgjnuTitDW5omhSW2YNFMdoLH5gVAzx2GT39KzrS_eytLqONcS3CCPzO6pnLAemePwz616EYvdmGMnT5lGmtF-J2en6GJNHZYUh-1qu4xNIpPA-boeOPX2ra-H9nG186P9pnlhBeMvHiEEYGA2efXHtXn2h6hNp8hvlO4xMI1VskHcD1HcAAnFdX4Y1p4fE0S3txdxoNyyhm_1gbjOzooBweB71m6XuyKpYtzqRjJaI7bVNX8i5IkO4s6MrFsZAPJA-lPfWGkgiy4P7rzAGcAgk8A_mBk1l-ItNluZWvraQT24T906jgAckn9OKdNod7qUdjeCVLO3MSnfNyWDHoEHQY5_Ic9a82zV76H1Mq9Lli0r-hFfXdyba1sbCZkuLmQqY_MHzMSABn6mu10jwVfadpQm12_IiRAIrZWztY8D5vUE9qwdA0mxtrW8v7rSY9RkimVI_MkMYYf3l9T04_XmtnU_GaaxdfZAiKX-6VYkdOD0_wA-1VOLjRc1q-hzV6mIxGlBWit3oZlxoVrOW-z3pQSuUJOGUMORn3I569ar32lWtjp95bbU6KIZZJc4Ydffn8sg9KuXV8th5lv9kBkRR8w43ccZPrn_ADzWRLfacI5roxxB8qNrplMkkAj8uePT3rjwjlVlzTbUTelSs223buENvd3OhRLvtZLh5DvAkwFTsM8Z6Nn68VkQvc2U7WyzQMys3msn8JznuM4x_Sr9nPb20jzpa7nlyix5BVc5BbHbrwKp-JtQsrCA3nlLHcSMSY3LAyMTnPQ8e2QPeuuNNOTUXcVXEUMNHkTul-ZfvZtQuJXa3WQqIhGD_ChyMc_3ssPw5qxpl2xtAZb8vK6qzlVyeTgqxOMEZHJ6dO1ZDapHeWCLEqnzGCgr3YLyfpg4APrU0epW985gmgYXUi7TJH_Gp5w3r06-1U58vuWuiXUTo2mrp39TqNH1mys57mMRMZADEjs27fuAwu09QGA6e_Nc-IvEGt65ItrpkMQlVmSR5gVODgHIz0NTad4f1OVLmS1TPlDbneoduMhVz3IrqktW8OadaWcl18pDAkLhk3HcR19SB74NFKEZTUGrLoeU40ak3TpNpnPrp_iGy-zx3U6uTIUZVfcX9SB3Xp-dWvE13_Yuk28kMQh3fJ5a4ABHQBewzn_JrQF3Mtwi-f8Au0wcqcgA1geKdHgv4klWa7ZkZnwWyrE9Bz0wcfn14rsqUZU43iztjR5HDRNo46-kvNRiSZiXAzlmPU8D-lcXq91594VBwkfyrXop8x7OHzoJkWUEK6JnP0Hc15XJu81t-c7jmqoxT9483N41o1XKaspbW8iM9aBxQRyaSuk8Z7mppUct9cRaZbxF5rqZFjw-35-QP5165Nf2Hw-nW9uo4r3WXjjR5wuGC5w-0Hpxxu74xXisUkkMqyROySIQVZTgg-oNaBvr2_vftV1PLd3DEKWuGMm5emCT2obSizWlJK-l2e5XniVNQ0-OaGY3EVwAFA7g9j6VD4tvbqxa1itkj8uMqPnOBuAGOp6Vx_hW2caha28enDyJGU741YiRd3zICT8rZ_LNdhqEQjnW11KBTIgAjEhBDHg4Lc9s_lXj1KXK_Jnr5filGSUkUYr5lURzTlm2fPFFgq_fIzjHPp35rmtRhk026-1QyP5Zbh_LO1SR04B568Zro3uLHTZJbiRY7jygp-z2a54JG5mIycDI9jXOWPiCbX9aVtQMfkKCkVmUUQjkYBJPBzjnvzyKKVJt6vQ3xGYNVPq8Vbm3exu2skc1l9omnm2yx_fRyC-cEn65x1x-lQwaaJIDGt40mBvbz1O5Bnu3t1q3NbTwmUWdtb7IVHypKxKrxxjPbA5FV7S2s5pJnvJZlKgswV8hiRxjjtz_AJzWsvZU_dtc75zw-GpWqSbbXQ4_W9RuYprlLO4kjWCXy_lIzuAHJPv83HsKvxa2b-zaS4gNxHtWRo3jDBSOG68def8AgVZ1s8o1vVEwBISLhSTnzMOOQfTax6dqgvJtVOttai9upSXIRhIVDDsR0AH6VtyrZaHxuJqc0maEfiCO6uxYxaVEgBwDtVSD07CrOoXWs2tvOlgZ0MTfvBGnznCgdcdBj9ayrjV3kniWF3jMahTckfvXbuS3UAnOBnvWvbXv9p2zWT3Z-cIOJPmIXGR_eIwCMVLjHmTOrB1I1YSozlbS6u-3Q2fB8wDRavf37DfaBHSQFi-GYlsk8HKrjrnkV0s2pLNqn2eRcyiMM4PKjeTz-GDXAG6itzBFLLKrRSFgzR43r175HXJ_GtqwMpinu2l3Tysz5LclQhAH9ePWuSpSlOTkaRhTjHnpzOjtUtGs5lN6yXaKzqoQ-WMDIB49utYl59u894b-7gUqu6MCQYYZyBn8OnWuU8Q-LLu5ktbC3uzIVYByjdRnhSR19_8AOLOnXt1eJd3s17Io3yCBQFPlyHn5gwIKEcY_yej2dSNrs68rxtd1eWMeZsvSvPel42mikjVTuBXhfXGMirlr8NNKm0s3N3K6Xd7Fm0UN8iA_dkI6kdDz2P5c6U1O2srmdZPtPnxuZWXbEqKB83HGTjPA_wDrV12sePNOvdRWS2MS2sUKpGd3zBQOP8Mf_qrWm-R3fU7sbiIzkqVaFuuu9_U8sGhy046E4rqWgVWVfOkIPfinfYzuULPJ6nIBqPbSPK9nE5M6Kw7Go4yUZmI-WMfL7mu0-wKefOf9KqXOm2UVtNcXZmZExgJjJJOB296qNRy0YmlGLSOq-GcjNpthHJktHdsMn0O0_wCNdNqixvcXmTumlkXbg4KgKOfzrivhwsttKnmylg8qOqn-DqCP1Fa_ibVP7Lur-Yf6xpAkYPdti8_h1qarMo1fYy9otLHMapbXWmaqJrWVEBxlHPysM8ggc4rRsNPtGW6lvoxsJVlTcQUHOM4GQT2-nasbEsf-m30u2d-VLjJHvjufTsP0GlpN1ZJZ3M1vvllkBjd5FLb2Pbd044PFKlBby2RrgsVLH42PMtOvyL0uqwW9x_arTZSONt0YOXB5wOgzXn82t3b5SF_JiJ-4v-NT-ILuMW62ySbpZDukweAKwADt4O4D8xV0qd1zy3Ys4r-1xD5HpHRehoRajcQTRyxyFZIwQvA4B6ge3tW5purfa7C8-2P-8iAKzBcsisSrfhl1OBXIM-SOOPWrNncSRPMqqWWSFkYeo6j8iAfwrWVJSR5KTvqdPcaXbNaSXAvYQqocNknexGQBz9Off2rJsVEcd1clVeSJBsDfwkkDd-HT6kVZ06zubmwiW3hknwGY7FLYJPT8gPzpbm3u9Lh-0TwNHE2UKSL9_GMqR17j-Y6VnzLm5URGnUk9Foikl5KQ-6Z2D_fG4ndUkMGrmMtZXTyQopJj83-Egg_KeOmelUtSH9napLBFloVbMbN_Ep5U_kRUS3k1hq0jxuVO8g_TNbRj1RrGLTudFomgyi8iNm6Xd1KCYUQ7clcE4Jx3wM981vXst3BJbx39ncpqEk3lgyRZDEkAAnGGOSec5rP8FXunya5HbakjrIhje0nWQqqMp37W7YJP6AV6pf3kULC5YeZcl1KRkDaWzkZz7j9KUqUZPmkfRZVKpGLdNpP7zmfEPgZrbTrkW98zXBjy3mLiMcfNyPxxXluoaVewQW8QQuIwwLRnK_Mcjn3GK9kbU9R-2ot4QBMw3ncGA9QO3rWR8T_E_wBl8H6dpGnx-UJpfMnlJAYlR0AHbLdfb3qoxS-E0zWEnFVKjuzmH1O0wcRy9OPloXWbc8mKUH021k-WT3k49qTbjtIfwrisjhNr-2bUDPly_TbWvpFxZalYXXmwOwhdXIK849QO-MVw8rTKytHG5TPzDac103hCbZqjxkNiWIgZXuORVxVnczmrxOk0tLUTQS22GXdlSrf7QPrWL4s1dZPE90sMRD2krAiRe7Iu1sfhn8KX7QPD3iKNj5psb6XAxyIpM-g9f8an8b_YLDVr28ntmMk0iRtLGPujaDzWk1orHHVg5xaRwLJqWrXrfaGcKGyWFan2ow2q6bp1t-8HVs5Y-p6f1q14e0uTxHeRJayNBE5k3SsPuhACTj_gQFaktpb6FMba3uBcvuDTPtC_KOwznFYzrqMlBrXsRhIV1Lmj7q8jh0uDDDcA2ELu4w0spLOoP90E4_HGauab4cvNYeRNPZHkjwQGO0tkE8Hp0HrVu4jgv54GtdKvBEUCh5pAR_DySqjsCOvetsRQ6fLHDbIxTYVDZOSOgOR-FbzqcqvY9bLsseLm5SXuo4e6069tZTBcxNGWbHzDIz9ahiimF1HHF80xYBQP73pzXeyeVcSIB5sUpYb_AHK-tZ-o20UNy7NbA7l2g4yvOOfY5qI4pPSxjiMCoTlG-z6ieF9TSza5jBKgMCFHbr_9atTV2fUUhaRBJaQxO0nBw75wo_AtyM_w-1c9GJdHupLpZC_mIUdV6qeuD68Z_Krtt4kMNkbe4t3OUbeFXOQ3J4_hOSfzHFZThJz9pDUxekeRMzpbaOSLbIN4GAM9gPT04qvf6YjRC5if7q7mByScVrSW5e2W5jSQRNkAlCASMZHPpkVBHE9xHJYGQIZiAjNwBk9z24q4TaZ59Gp7NuM1e4mjJLpF5b3U2k22qgxeY0MylhjJ_UY75Hau4Xx_oGstG0qf2fICB5Tj5VxjGCB_TtUaaPay3QMvn3VtFM0bC2X93IiZAAbOBzk4znmnXPhKy1TU4J9O0g2kjMCwSVcYGSTgkgHHqw5H1rptKUdj0qMq9Fc9NGZqfjDT7W4mtwtxLdQuUwcBQRwefT8K5LXPFV3qlsbN4YkhyD03Nwc9T0_Cor9I_wC0bgLaSTHzWxI75389eAM5rO-xyzzCNIzuPGDxinFpLUwrZjWre7N6Hf8A2UDtS_ZQf4aKK5-VHRdh9kB_hp0JSwuY53U7VPOBnjHNFFCSE27Emu3kFzYOIX3TB1lj45BU5z_OtvxlDFNDrPmIrgQ7xn12DBooqpdDNbsx4LWaO_uo7J5ITukEKwJ95htyoA7kKRiuauH1G31uCw1RDFd-ZHHNCSpJ3jq2OAeRxRRWypxfvNamHtJLRMfpDxx381ut4Y4xklHjLkYPQDoPxNXpJxFctKJpAy42BY8E5-nSiiuKt_ER9bk1WfsGrlyK8Tabi7vrYLtKqjIHfI65P8I-hP4VWiuYr2d4d6OroCF65B9fqKKKKUVqzxMTUlKTv3My7_dC-snJfaYplOPmZQGyufXH5hauw2MUnkLkuZibiQxDIx_CPmx6r-CmiiuqySOJN8zL7RhRHG64DAohLd85x07_ADflWSyedEk23YrO6xkfxBSefbgZoorFQVmZV4pq502geIprGxWxbabWMk7FXGzJyWz0ySTV5PEsU5k2ktahTlgeduO_4dqKKI15paM9LDVZewXocrr3iLSrhEWyYGXIXOwjYo6BeMAVR0yELdCUESqYzKuz5umBz_31-lFFaVYrVnhYpL2lz__Z 

but when I fileread() the image, all I get is this:

ÿØÿà

But it FileGetSize says the size is indeed 2933. How do I read the image, and what do I do to the format to get it to look like the above example?

Edited by corgano

0x616e2069646561206973206c696b652061206d616e20776974686f7574206120626f64792c20746f206669676874206f6e6520697320746f206e657665722077696e2e2e2e2e

  • 11 months later...
Posted

Revisiting old posts, and this is still something I'm wondering how to do. Does anyone know a way to search for tags for an image (using google or something else?)

0x616e2069646561206973206c696b652061206d616e20776974686f7574206120626f64792c20746f206669676874206f6e6520697320746f206e657665722077696e2e2e2e2e

Posted

Well, about your fileread issue: you'll need to specify binary file reading mode when reading a file you know/expect to be binary:

#include <FileConstants.au3>

Local $hFileOpen = FileOpen("c:\temp\test.png", $FO_READ + $FO_BINARY)
Local $sFileRead = FileRead($hFileOpen)
MsgBox(0, "", "Contents of the file:" & @CRLF & $sFileRead)
FileClose($hFileOpen)

No idea about those other things. Good luck :)

Roses are FF0000, violets are 0000FF... All my base are belong to you.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...