Seite 2 von 2

Verfasst: 14.01.2006 13:18
von Tsuki-Namida
@Macros
ich bekomme so einen Error bei "Hohe.l = ImageHeight()" dieser lautet "Invalid memory access." habe ich was falsch gemacht?

Verfasst: 14.01.2006 13:24
von Macros
Hast du bei ExamineDirectroy auch
den/die richtigen Pattern angegeben?
Und dann auch den/die richtigen Decoder aktiviert?
(z.B. UseJPEGImageDecoder)

Verfasst: 14.01.2006 13:26
von Tsuki-Namida
ja habe ich...

Hier ist der Code mit Plattern

Code: Alles auswählen

      If ExamineDirectory(50, IMG_Fulder, "*.jpg")
        CallDebugger 
        While NextDirectoryEntry()=1
          img_datei$ = DirectoryEntryName()
          LoadImage(2,img_datei$)
          UseImage(2)
          Hohe.l = ImageHeight()
          Breite.l = ImageWidth()
          Debug Hohe.l
          Debug Breite.l
          img_datei$ = RemoveString(img_datei$, ".jpg")
          img_datei$ = RemoveString(img_datei$, ".JPG")
          If Hohe<=55 And Breite<=55
            AddGadgetItem(#File,-1,img_datei$)
          EndIf
        Wend
      EndIf 
und der dekoder ist auch geladen

Verfasst: 14.01.2006 13:34
von Macros

Code: Alles auswählen

If ExamineDirectory(50, IMG_Fulder, "*.jpg")
        CallDebugger
        While NextDirectoryEntry()=1
          img_datei$ = IMG_Fulder+"\"+DirectoryEntryName()
          LoadImage(2,img_datei$)
          UseImage(2)
          Hohe.l = ImageHeight()
          Breite.l = ImageWidth()
          Debug Hohe.l
          Debug Breite.l
          img_datei$ = RemoveString(img_datei$, ".jpg")
          img_datei$ = RemoveString(img_datei$, ".JPG")
          If Hohe<=55 And Breite<=55
            AddGadgetItem(#File,-1,img_datei$)
          EndIf
        Wend
      EndIf 
Hier der Fehler: man muss natürlich den kompletten Pfad angeben
img_datei$ = IMG_Fulder+"\"+DirectoryEntryName()

Verfasst: 14.01.2006 13:40
von Tsuki-Namida
Super danke :) jetzt geht es wie geplant :D

Verfasst: 14.01.2006 14:25
von Sylvia
Das Laden der Bilder (LoadImage()) dauert relativ gesehen, besonders
bei grossen Dateien, recht lange. Wenn es nur um die Information
Breite & Höhe geht, lässt sich das viel schneller mit diesem Code machen:

Code: Alles auswählen

OpenFile(1,"d:\test.jpg")

FileSeek(163)

h=(ReadByte() & $FF)*256+(ReadByte() & $FF)  ; Hoehe
b=(ReadByte() & $FF)*256+(ReadByte() & $FF)  ; Breite

CloseFile(1)

Debug "Höhe  : "+Str(h)
Debug "Breite: "+Str(b)

Verfasst: 14.01.2006 14:42
von Macros
Funktioniert bei Bildern, die ich mit
Paintshop Pro 9 erstellt, bearbeitet habe nicht. :(
(Bei Paint klappts natürlich)