Seite 1 von 1
EXIF-Informationen aus Bild-Datei lesen
Verfasst: 1. November 2009 16:48
von suamikim
Hallo zusammen,
ich würde gerne beim laden eines Bildes dessen EXIF-Daten auslesen (eigentlich reicht mir lediglich das Datum, wann das Foto geschossen wurde).
Über google hab ich auch die Klasse QExifImageHeader gefunden, welche ich aber leider nicht in meinem Projekt einbinden kann.
Laut der Doku (
http://qt.nokia.com/doc/qtextended4.4/q ... eader.html) ist die Klasse im QTBaseModule und man muss QExifImageHeader einbinden (#include <QExifImageHeader>).
Wenn ich das mache erhalte ich aber folgende Fehlermeldung:
foo.cpp:7: QExifImageHeader: No such file or directory
Wie kann ich die Klasse nun nutzen bzw. gibt es vielleicht alternativen zum auslesen der EXIF-Daten?
danke, mfg
mik
Verfasst: 1. November 2009 16:54
von Christian81
The Qt Base module offers classes for embedded Linux devices.
Ich glaube nicht dass Du mit embedded Linux programmierst... wie soll es also gehen?
Da musst Du wohl schon selbst eine exiv-Library benutzen.
Verfasst: 1. November 2009 17:05
von suamikim
Oh, das hab ich natürlich übersehen...
Sorry bin noch relativ frisch in qt und wäre nicht auf die Idee gekommen, dass das QTBaseModule nur für embedded ist...
Dh. es gibt keine fertige Bibliothek, die schon Bestandteil von qt ist?
Kennt vielleicht jemand eine freie Bibliothek, die ich wo herunterladen könnte?
Hat zwar jetzt mit dem Thema nicht direkt zu tun, aber gibt es irgendeine Quelle, wie zB. thecodeproject für qt?
danke, mfg
Verfasst: 1. November 2009 17:30
von Christian81
KDE z.B. benutzt
Exiv2 - das funktioniert auch unter Windows.
Verfasst: 1. November 2009 17:35
von suamikim
Ok, herzlichen dank für die Info.
Werd mir das mal anschaun!
danke, mfg
Verfasst: 4. November 2009 12:12
von suamikim
Soda, hab mir das mal angeschaut und merke gerade, dass ich wirklich noch keine Ahnung von Qt habe...
Deshalb jetzt mal ein paar grundsätzliche Fragen:
Wie sollte ich die exiv2-library am besten verwenden?
Einfach die fertige (Windows-)Dll herunterladen und dynamisch im Programm darauf zugreifen (wüsste momentan noch nicht, wie das geht, aber das lässt sich auch herausfinden)?
Kann ich auf diese Dll dann auch unter Linux zugreifen? Mein Programm sollte schon Plattformübergreifend funktionieren (eigentlich der Hauptgrund, warum ich überhaupt auf Qt gekommen bin)?
Oder soll ich einfach alle Sourcen in meinem Projekt einbinden und darauf zugreifen? Das hätte ich gerade auf die schnelle probiert, bin jedoch kläglich damit gescheitert, weil mir der Compiler über 200 Fehler serviert hat (Qt Creator)...
Sorry für die sehr allgemeinen Fragen, aber ich stehe gerade an...
mfg
mik
Verfasst: 4. November 2009 14:36
von suamikim
Bin jetzt mal auf eine Lösung gekommen, die soweit ganz praktikabel sein sollte. Ich hab mir einfach mal die exiv.exe heruntergeladen, starte diese mittels QProcess, lese die Ausgabe und verarbeitete diese dann.
Das ganze sollte dann ja auch unter Linux funktionieren, sofern exiv2 installiert ist.
Nachdem das zwar funktioniert, aber bestimmt nicht die gängige Lösung ist, wäre ich nach wie vor an einer Antwort auf meine Frage oben interessiert!
danke, mfg
Verfasst: 4. November 2009 14:54
von AuE
Wie verwendest du denn die Qt Sachen.... die sind ja auch nix anderes als libs

Verfasst: 4. November 2009 15:44
von suamikim
Mhm, schon klar, nur sind die Qt-Libs bereits eingebunden, wenn ich ein Projekt erstelle
Wie gesagt: bei den Exiv2-Sachen kann ich entscheiden, ob ich entweder die fertige dll verwende oder die Sourcen (beides kann ich auf der HP herunterladen).
Bei der dll weiß ich eben nicht, ob diese ohne weiteres auch unter Linux läuft, wenn ich sie dynamisch in meinem Programm einbinde & bei den Sourcen ist das Problem, dass ich mein Projekt nicht mehr kompilieren kann, wenn diese "eingebunden" sind.
Sorry, wenns vielleicht begriffstutzig ist, aber vielleicht könntest du mir noch ein wenig auf die Sprünge helfen?
danke
Verfasst: 4. November 2009 16:49
von AuE
Also dlls unter Unix sind naja

ungewöhnlich

Also lieber die src.
DWenn du die verwenden möchtest musst du natürlich die Includepfade mit angeben !
Verfasst: 4. November 2009 16:50
von AuE
Also dlls unter Unix sind naja

ungewöhnlich

Also lieber die src.
DWenn du die verwenden möchtest musst du natürlich die Includepfade mit angeben !
Deine Fehler haben etwas mit nicht definierten Sachen bzw nicht aufgelösten verweisen zu tun oder?