Bild-eigenschaften aus Firefox

  • Hallo liebe AutoIT Gemeinde.

    Ich habe in Firefox einige Bilder (.gif .jpg und andere).
    Jetzt möchte ich gerne das Format, das heißt Breite und Höhe in Pixel und die Speichergröße in KB zu jedem bild auslesen.
    gibt es da eine einfachere Methode?

    ff.au3 hilft mir da nicht weiter oder ich habe eine Funktion übersehen.

    Danke für eure Hilfe.

    PS: Ich kann auch jedes Bild einzeln öffnen wenn es damit besser geht.

    Einmal editiert, zuletzt von Fischi84 (13. September 2010 um 03:49)

  • Hallo Fischi84,

    Breite, Höhe kannst du mit _GDIPlus_ImageGetWidth bzw. _GDIPlus_ImageGetHeight ermitteln. Für die Dateigröße in KB

    [autoit]

    $size = int(FileGetSize("DeinBild.jpg") / 1024)

    [/autoit]

    .


    mfg autoBert

  • _GDIPlus_ImageGetWidth bzw. _GDIPlus_ImageGetHeight und FileGetSize() funktionieren nur mit Dateien die bei mir auf dem Rechner liegen.

    Für Bilder aus dem Internet, gibt es eine Möglichkeit die ich mit Firefox und der ff.au3 gefunden habe

    [autoit]

    #Include <FF.au3>If _FFStart("http://levelr.gamigo.de/forum/image.php?u=9545&type=sigpic&dateline=1261045065") Then
    $sText = _FFReadText()
    If Not @error Then MsgBox(64,"Text:",$sText)
    EndIf

    [/autoit]

    Leider zeigt das nur die Höhe und breite an, um die Größe (kb) anzeigen zu lasen muss ich das Bild jedes mal erst herunterladen und lokal speichern.
    Wenn jemand noch eine andere Idee für die Größe hat dann bitte mal hier schreiben, danke.

    Wünsche noch ein schönes Wochenende.

  • Wenn man eine Website besucht, werden die Bilder in den Cash geladen, jedoch verschlüsselt und nicht mehr wie in guten alten Windows Explorer 6 Zeiten...
    Du könntest über TCP versuchen das Bild herunterzuladen!
    So im etwa:

    Spoiler anzeigen
    [autoit]

    ConsoleWrite( _GDIPlus_ImageLoadFromInet( "http://www.autoit.de", "/wcf/images/future/autoit_logo_gtaspider.png"))

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _GDIPlus_ImageLoadFromInet( $sHost, $sSeite)
    If StringInStr($sHost, "http://") Then $sHost = StringReplace($sHost, "http://", "")
    If StringRegExp($sHost, "\.../") Then $sHost = Stringreplace($sHost, "/", "")
    TCPStartup()
    $sIp = TCPNameToIP($sHost)

    [/autoit] [autoit][/autoit] [autoit]

    $sData = "GET "&$sSeite&" HTTP/1.1" & @crlf & _
    "Host: " & $sHost & @crlf & _
    "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 3.5.30729)" & @crlf & _
    "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & @crlf & _
    "Accept-Language:de-de,de;q=0.8,en-us;q=0.5,en;q=0.3" & @crlf & _
    "Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.7" & @crlf & _
    "Connection: close" & @crlf & @CRLF

    [/autoit] [autoit][/autoit] [autoit]

    $sSocket = TCPConnect($sIp, 80)
    TCPSend($sSocket, $sData)
    If @error Then return Seterror(1)
    Local $sRecv_header = "", $sRecv_binary = "0x"
    Do
    $sRecv_header = TCPRecv($sSocket, 1)
    until $sRecv_header <> ""
    Do
    $sRecv_header &= TCPRecv($sSocket, 1)
    until StringInStr($sRecv_header, @crlf & @crlf)
    $aArray_help = _stringbetween($sRecv_header, 'Content-Length: ', @crlf)
    If not IsArray( $aArray_help) then Return SetError(2)
    TCPCloseSocket($sSocket)
    TCPShutdown()
    Return $aArray_help[0]/1024
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]
  • [EDIT] Ja, danke für das beispiel. hat super funktioniert. (Nachdem ich es mir nochmal angeguckt habe.) [/EDIT]


    ja, die Idee mit den Cache, hatte ich auch. Ist aber, wie du sagtest verschlüsselt. Ich habe es anders gelöst. "strg + s" ist speichern und dann einfach Enter. Dann muss ich die nicht nochmal herunterladen, weil Firefox sie bereits im Cache hat.

    Das ist also nicht das Problem, und mein Programm läuft auch so wie ich es haben will.
    Nur ohne herunterladen und Lokal speichern währs halt schöner.

    Danke trotzdem...

    Einmal editiert, zuletzt von Fischi84 (13. September 2010 um 03:49)

  • Schau dir mein Beispiel an, es fragt bei dem Server nach wie groß das Bild ist! und gibt es in kb zurück!