Dateiinformationen aus Jpg Datei auslesen
-
Hallo Forum,
ich möchte einige Dateiinformationen einer Jpeg Bilddatei auslesen, wie z.B. den Autor, die Auflösung und das Datum der letzten Änderung.
Zum Auslesen der letzten Änderung benutze ich die
stat("Datei.jpg",&statref)
Funktion aus "sys/stat.h" .
Das funktioniert auch wunderbar, aber hiermit komme ich nicht an die Auflösung ran und auch nur an die EigentümmerID..Sind diese "Sonderattribute" betriebssystemspezifisch (und nur in meinem Windows vorhanden) oder hängen die in irgendwelchen Metadaten des Bildes und wenn ja wie kann man daran kommen?
Falls jemand eine Idee hat bitte posten bin für jeden Vorschlag dankbar.
Schöne Grüße
Fred
-
Was verstehst du unter Autor? Der Ersteller des Files? Dann ist das Betriebsystem spezifisch, hat also nichts mit Standard C++ zu tun.
Die Auflösung wird im JPEG gespeichert, da muss du dessen binäre Datenstruktur auslesen. Informationen dazu findest du hier:
http://www.wotsit.org/list.asp?al=JDatum der letzten Änderung ist wieder Betriebsystem spezifisch, wieder nix mit Standard C++ zu tun.
"sys/stat.h" ist soweit ich weiss ein Unix C Header. Also unter Windows nicht zu empfehlen.
Auf Windows würde ich zur WinAPI raten, bzw. zu den "File Management Functions":
http://msdn.microsoft.com/en-us/library/aa364232(VS.85).aspxInteressant für dich dürften vor allem diese zwei sein:
http://msdn.microsoft.com/en-us/library/aa364944(VS.85).aspx
http://msdn.microsoft.com/en-us/library/aa364418(VS.85).aspxFalls du Platformunabhängig bleiben möchtest, dann gibt es etwas von Boost. Wobei für einen Anfänger dies ziemlich mühsam sein könnte, da man schon ein wenig gefestigt in C++ sein sollte.
http://www.boost.org/doc/libs/1_38_0/libs/filesystem/doc/index.htmÜber Unix/Linux/Mac habe ich keine Ahnung, da müsstest du in den enstprechenden Bereich nachfragen gehen oder einen Mod darum bitten, dich entsprechende zu verschieben.
Grüssli
-
Hallo Dravere,
erstmal danke für die schnelle Antwort.
Ja mit Autor meinte ich Ersteller der Datei. Das ganze müsste Plattformunabhängig bleiben deswegen kann ich mich leider nicht nur auf WindowsAPIs stürzen..
Bis du dir bei der stat.h ganz sicher? Ich meine mal gelesen zu haben, dass es
für Windows/MS-Dos sys\stats.h und für unix/Linux System sys/stats.h gibt..Naja werde ich jetzt erstmal in die Datenstruktur von Jpegs einlesen.
Danke für die Links
Grüße
Fred
-
FreddieR schrieb:
Bis du dir bei der stat.h ganz sicher? Ich meine mal gelesen zu haben, dass es
für Windows/MS-Dos sys\stats.h und für unix/Linux System sys/stats.h gibt..Also wenn schon, ist der Backslash oder Slash egal. Auf Unix wird ein / verwendet, auf Windows ist / und \ erlaubt. Das ist insofern irrelevant.
Es gibt auf Windows ein "sys/stat.h", welches auch für Dateiinformationen zuständig ist:
http://msdn.microsoft.com/en-us/library/14h5k7ff.aspxGrundsätzlich wird da aber die
_stat
Funktion verwendet. Mit einem Makro lässt sich dies allerdings glaub ich auch alsstat
verwenden. Persönlich würde ich aber davon eher abraten. Wenn du wirklich Platformunabhängig sein willst, dann hol dir eine entsprechend vorgefertigte Bibliothek und da kann man Boost.Filesystem wirklich nur wärmstens empfehlen.Grüssli