dEXIF handling

Rund um die LCL und andere Komponenten
Antworten
Benutzeravatar
h-elsner
Lazarusforum e. V.
Beiträge: 259
Registriert: Di 24. Jul 2012, 15:42
OS, Lazarus, FPC: LINUX Mint21.1, Win10, Lazarus 2.2.4, FPC3.2.2
CPU-Target: X86-64; arm 32bit
Wohnort: Illertissen
Kontaktdaten:

dEXIF handling

Beitrag von h-elsner »

Ich versuche gerade EXIF Daten einer JPG Datei zu lesen und zu schreiben. Da ist mir die Komponente dEXIF ins Auge gefallen.
Diese habe ich mit OnLinePackageManager installiert und sie steht auch im Home-Verzeichnis ...\lazarus\onlinepackagemanager\packages.

Er findet aber die unit dEXIF nicht, wenn ich sie mit uses benutzen will. Nach Eintrag des Verzeichnisses in den Projekteinstellungen > Pfade > Andere Units wird die unit dann aber doch gefunden. Warum muss man das hier extra angeben, bei allen anderen Komponenten aber nicht?

Wenn dann die unit dEXIP in uses steht und auch gefunden wurde, wird aber wiederum TImgData als unbekannt angemeckert. Welche Unit muss ich da noch einbinden? Leider finde ich zu diesem Typ nichts weiter.

Gruß HE

Sieben
Beiträge: 202
Registriert: Mo 24. Aug 2020, 14:16
OS, Lazarus, FPC: Ubuntu Xenial 32, Lazarus 2.2.0, FPC 3.2.2
CPU-Target: i386

Re: dEXIF handling

Beitrag von Sieben »

Wenn ich das richtig verstanden habe, geht der Weg mit Lazarus immer über die Packages. Füg also mal das installierte Package über den Projektinspektor deinem Projekt hinzu, dann sollten auch die Units (und Komponenten) gefunden werden. Den Suchpfad wieder aus den Projekteinstellungen entfernen.

Benutzeravatar
h-elsner
Lazarusforum e. V.
Beiträge: 259
Registriert: Di 24. Jul 2012, 15:42
OS, Lazarus, FPC: LINUX Mint21.1, Win10, Lazarus 2.2.4, FPC3.2.2
CPU-Target: X86-64; arm 32bit
Wohnort: Illertissen
Kontaktdaten:

Re: dEXIF handling

Beitrag von h-elsner »

Danke für die schnelle Antwort. Gleich mal ausprobiert...
Wenn ich das package "dexif_package" bei Benötigte packages hinzufüge, ist TImgdata immer noch unbekannt und es kommen eine Menge Meldungen Duplicate unit...
Scheinbar hat der OnlinePackagemanager da doch etwas gemacht.
Interessant ist noch, dass die unit dEXIF nun bei uses erkannt wird nachdem ich den Suchpfad wieder entfernt habe (ohne schon im Projectinpektor irgendetwas gemacht zu haben. Hmm.

Gruß HE

Benutzeravatar
h-elsner
Lazarusforum e. V.
Beiträge: 259
Registriert: Di 24. Jul 2012, 15:42
OS, Lazarus, FPC: LINUX Mint21.1, Win10, Lazarus 2.2.4, FPC3.2.2
CPU-Target: X86-64; arm 32bit
Wohnort: Illertissen
Kontaktdaten:

Re: dEXIF handling

Beitrag von h-elsner »

OK, der letzte satz ist falsch. Wenn ich das Verzeichnis /lib lösche, wird auch dEXIF nicht mehr gefunden. Die wird dann gefunden, wenn ich das Package über den Projektinspektor wieder hinzufüge.
TImgData ist aber immer noch unbekannt.

Gruß HE

Nachsatz: Win10 64bit, Lazarus 2.0.10/FPC 3.2.0
Beispiel:
EXIFtest.zip
(2.32 KiB) 83-mal heruntergeladen

Sieben
Beiträge: 202
Registriert: Mo 24. Aug 2020, 14:16
OS, Lazarus, FPC: Ubuntu Xenial 32, Lazarus 2.2.0, FPC 3.2.2
CPU-Target: i386

Re: dEXIF handling

Beitrag von Sieben »

Leider kenne ich das Package nicht, aber eine kurze Suche ergab, dass TImgData wohl in Unit dMetaData definiert ist.

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: dEXIF handling

Beitrag von wp_xyz »

Ich weiß nicht was du da machst. Normalerweise ist der Unit-Pfad für Lazarus-Programmierer tabu, alle Abhängigkeiten werden über die Packages realisiert, die im Package-Manager eingetragen werden.

Wenn du dExif über den Online-Package-Manager heruntergeladen und "installiert" hast, müsste Lazarus das zugehörige Package kennen (wenn nicht, die lpk-Datei unter "Package" > "Package-Datei öffnen" öffnen - das müsste reichen, man kann es zur Sicherheit aber auch gleich kompilieren; Designtime-Packages müssen zusätzlich "Verwenden" > "Installieren" installiert werden -- aber das hat der OPM alles schon getan...).

Um das dExif-Package in einem Projekt zu verwenden, öffne den Projekt-Inspektor("Projekt" > "Projektinspector"), Rechtsklick auf "Benötigte Packages" > "Hinzufügen"; in der Liste des Fensters "Neue Anforderung" suche das dExif-Package, auswählen und OK. Das Package erscheint dann im Projektinspektor unter "Benötigte Packages". Nun kannst du wie gewohnt die im Package enthaltenen Units in die "uses"-Zeile deines Programms aufnehmen.

Da du schon Eintragungen im Suchpfad hattest, lösche den Suchpfad und das lib-Verzeichnis (oder wie auch immer das Verzeichnis heißt, in dem bei dir die übersetzten Units landen) vor der Neukompilierung.

Damit MUSS es funktionieren.

Eine Bemerkung in eigener Sache:
dExif war mal Gegenstand einer längeren Diskussion hier im Forum und daraus ist das Package fpExif entstanden, bei dem viele Schwächen von dExif beseitigt sind. Da es noch ein Problem mit den "Maker Notes" der Kamerahersteller gibt (übrigens auch bei dExif), habe ich das Package noch nicht im Online-Package-Manager zur Verfügung gestellt. Du findest die Dateien unter https://sourceforge.net/p/lazarus-ccr/s ... ts/fpexif/ (svn verwenden, oder den Snapshot herunterladen). Der Hauptvorteil von fpExif gegenüber dExif ist, dass das neue Package im Gegensatz zum alten gewartet wird.

Benutzeravatar
h-elsner
Lazarusforum e. V.
Beiträge: 259
Registriert: Di 24. Jul 2012, 15:42
OS, Lazarus, FPC: LINUX Mint21.1, Win10, Lazarus 2.2.4, FPC3.2.2
CPU-Target: X86-64; arm 32bit
Wohnort: Illertissen
Kontaktdaten:

Re: dEXIF handling

Beitrag von h-elsner »

Vielen Dank an alle.
Den Suchpfad hatte ich schon zurückgestellt und dEXIF über den Projektmanager zugewiesen. Mit Aufnahme von dMetaData in uses ging es dann.

Meine Antwort ist aber ins Nirvana gegangen, weil der Handwerker im Haus den FI-Schutzschalter geworfen hat. Jetzt bin ich aber wieder da.
Dank deinem Hinweis, @wp_xyz werde mal auf auf fpExif umstellen. Wenn ich schon bei Null anfange, dann gleich beim richtigen Package.

Gruß HE

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: dEXIF handling

Beitrag von wp_xyz »

Es ist leicht zu übersehen, aber in der Datei readme.txt steht eine kleine Einführung. Außerdem findest du im Download einige Beispiel-Projekte.

Benutzeravatar
h-elsner
Lazarusforum e. V.
Beiträge: 259
Registriert: Di 24. Jul 2012, 15:42
OS, Lazarus, FPC: LINUX Mint21.1, Win10, Lazarus 2.2.4, FPC3.2.2
CPU-Target: X86-64; arm 32bit
Wohnort: Illertissen
Kontaktdaten:

Re: dEXIF handling

Beitrag von h-elsner »

Jawohl. Bis jetzt fühle ich mit fpEXIF wohl. "ImgInfo.LoadFromFile" - solche Sachen, da fühlt man sich zu Hause.
Danke für den Hinweis auf die gepflegte Komponente.

Die readme hatte ich gesehen, sonst wäre ich nicht soweit gekommen, um eine Datei zu laden. :D Die Beispiele schau ich mir schritt für Schritt an.

Gruß HE

Benutzeravatar
h-elsner
Lazarusforum e. V.
Beiträge: 259
Registriert: Di 24. Jul 2012, 15:42
OS, Lazarus, FPC: LINUX Mint21.1, Win10, Lazarus 2.2.4, FPC3.2.2
CPU-Target: X86-64; arm 32bit
Wohnort: Illertissen
Kontaktdaten:

Re: dEXIF handling

Beitrag von h-elsner »

Edit: Bitte ignorieren. Das war ein fehlerhafter Kommentar.

Gruß HE

Benutzeravatar
h-elsner
Lazarusforum e. V.
Beiträge: 259
Registriert: Di 24. Jul 2012, 15:42
OS, Lazarus, FPC: LINUX Mint21.1, Win10, Lazarus 2.2.4, FPC3.2.2
CPU-Target: X86-64; arm 32bit
Wohnort: Illertissen
Kontaktdaten:

Re: dEXIF handling

Beitrag von h-elsner »

Es macht richtig Spaß mit fpEXIF zu arbeiten. Es versteht sich so viel von selbst. Sehr schöne Komponente. Macht alles, was ich will und brauche. Danke!

Gruß HE

Antworten