Metadaten in JPEG lesen und bearbeiten

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
scoty
Beiträge: 64
Registriert: 18.10.2005 16:43
Wohnort: Raum Hildesheim

Metadaten in JPEG lesen und bearbeiten

Beitrag von scoty »

Hallo Community,
ich möchte mit meinem Programm die Metadaten aus JPEGs lesen und bearbeiten können.
Ich bin schon ein paar Tage am suchen und testen doch brauche ich nun Hilfe.

Ich habe herausgefunden, dass der Einfachste Weg die Benutzung der FreeImage.dll ist, jedoch liegt genau dort mein erstes Problem.

Mein Programm öffnet bereits die DLL und leist die komplett verfügbaren Funktionen ein und zeigt sie mit an.
Ich kann mir auch die Copyright und Versionsinformationen anzeigen lassen, versuche ich aber die den FileType auszulesen, schlägt dies fehl.

Das erkenne ich am Rückgabewert -1 (fif unkown)

Ich vermute, dass es mit dem Dateinamen zu tun hat, dass ich diesen nicht richtig übergebe.
Die angegebene Datei existiert, das habe ich geprüft.
Ich habe es auch nur mit dem Dateinamen versucht und das Bild in das gleiche Verzeichnis, wie den Quelltext bzw. die DLL kopiert, auch hier klappt es nicht.

Der ErrorMessageHandler wirft mir auch keine passenden Infos aus.
Hat vielleicht jemand eine Idee?

Gruß scoty

Code: Alles auswählen

#FIF_UNKNOWN = -1


Prototype FreeImage_GetFileType(filename.s,flags.l=0)
Prototype RWFreeImage_GetFormatFromFIF  (fif.l) 
Prototype FreeImage_GetFormatFromFIF    (fif.l)

Global FreeImage_GetFileType.FreeImage_GetFileType=GetFunction(0,"_FreeImage_GetFileType@8")
Global RWFreeImage_GetFormatFromFIF . RWFreeImage_GetFormatFromFIF  = GetFunction(0, "_FreeImage_GetFormatFromFIF@4")
Global FreeImage_GetFormatFromFIF   . FreeImage_GetFormatFromFIF    = GetFunction(0, "_FreeImage_GetFormatFromFIF@4")

Procedure Sample_FreeImageErrorHandler(fif.l, message.l)
	Debug " *** Sample_FreeImageErrorHandler START"
	If fif <> #FIF_UNKNOWN
		Debug PeekS(CallFunction(0, "_FreeImage_GetFormatFromFIF@4", fif))+" Format"
	EndIf
	Debug PeekS(message, -1, #PB_Ascii)
	Debug " *** Sample_FreeImageErrorHandler END"
EndProcedure

If OpenFile(0, "c:\dll\FreeImage.dll")
    Debug "Die Biblithek wurde ortnungsgemäß gefunden"
    Debug " "
    CloseFile(0)
  Else
    Debug "Die Bibliothek FreeImage konnte nicht gefunden werden!"
EndIf

Debug "Bibliothek wird geöffnet:"
If OpenLibrary(0, "c:\dll\FreeImage.dll")
  Else
    Debug "Die Bibliothek FreeImage konnte nicht geöffnet werden!"
    End
EndIf
 

Debug "Bibliothek durchsuchen:"
If ExamineLibraryFunctions(0)
  Debug ""
  Debug "Funtionsnamen:"
  While NextLibraryFunction()
      Debug LibraryFunctionName()
  Wend  
EndIf

Debug ""
Debug "Version: "+PeekS(CallFunction(0, "_FreeImage_GetVersion@0"))
Debug PeekS(CallFunction(0, "_FreeImage_GetCopyrightMessage@0"))
Debug CallFunction(0, "_FreeImage_Initialise@4", #False)
Debug PeekS(CallFunction(0, "_FreeImage_SetOutputMessage@4", @Sample_FreeImageErrorHandler()))

imgpath.s="c:\Bild.JGP"
;imgpath.s="Bild.JGP"
Debug imgpath

*pointer = AllocateMemory(Len(imgpath)+10)
PokeS(*pointer, imgpath, -1, #PB_Ascii)
Debug PeekS(*pointer)
 fif = CallFunction(0, "_FreeImage_GetFileType@8", *pointer, 0)
;fif = FreeImage_GetFileType(imgpath, 0)
If fif = #FIF_UNKNOWN
  Debug "FIF_UNKNOWN"
  fif = CallFunction(0, "_FreeImage_GetFIFFromFilename@4", *pointer)
  If fif = #FIF_UNKNOWN
    Debug "FIF_UNKNOWN"
  EndIf
EndIf

Debug CallFunction(0, "_FreeImage_FIFSupportsReading@4", fif)
Debug CallFunction(0, "_FreeImage_Load@12", fif, *pointer, 0)
Debug PeekS(CallFunction(0, "_FreeImage_SetOutputMessage@4", @Sample_FreeImageErrorHandler()))

FreeMemory(*pointer)

CloseLibrary(0)
scoty
Beiträge: 64
Registriert: 18.10.2005 16:43
Wohnort: Raum Hildesheim

Re: Metadaten in JPEG lesen und bearbeiten

Beitrag von scoty »

Ich hatte meinen Quelltext vergessen, sorry
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Re: Metadaten in JPEG lesen und bearbeiten

Beitrag von Thorium »

:mrgreen:

Code: Alles auswählen

imgpath.s="c:\Bild.JGP"
jetzt müsstest du selbst drauf kommen. ^^
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
scoty
Beiträge: 64
Registriert: 18.10.2005 16:43
Wohnort: Raum Hildesheim

Re: Metadaten in JPEG lesen und bearbeiten

Beitrag von scoty »

! ! ! DANKE ! ! !

Kaum zu glauben, aber ich musst die Zeile noch ca. eine Minute lang anstarren, bis ich den Fehler erkannt habe.

Es ist eben Schwierige einen Wald zwischen Bäumen zu finden .........
Antworten