Damit wir uns richtig verstehen: Meine Änderungen haben auf wip-samples aufgebaut, wo alle Versionen vereinigt sind. Daher sollten sie eigentlich nach wip-samples.af0815 hat geschrieben:GITHUB: Daten sind in WP_XYZ_Version eingepflegt.
Exif bzw. IPTC
Re: Exif bzw. IPTC
Re: Exif bzw. IPTC
Ich habe mir jetzt die Tests angesehen. Genau, so ähnlich würde ich das auch machen. TstImgDataCanProcessFile liefert einen Fail bei der Datei mit der Endnummer 02, aber diese enthält lt den mir verfügbaren Programmen (IrfanView, Serif PhotoPlus 7, ExifTool* ) weder EXIF noch IPTC Daten, daher müsste hier m.E. auf CheckFalse geprüft werden.
(*) ExifTool zeigt bei Datei DUTPic02.jpeg zwar Daten an, jedoch erscheinen mir diese allgemeine JPEG-Parameter zu sein.
In der Anlage schicke ich den Output von ExifTool für beide Dateien. Ich will einen Testcase schreiben, der die gezeigten Parameter abfragt und vergleicht.
(*) ExifTool zeigt bei Datei DUTPic02.jpeg zwar Daten an, jedoch erscheinen mir diese allgemeine JPEG-Parameter zu sein.
In der Anlage schicke ich den Output von ExifTool für beide Dateien. Ich will einen Testcase schreiben, der die gezeigten Parameter abfragt und vergleicht.
- Dateianhänge
-
exiftool_DUTPic02.txt
- Output von ExifTool für DUTPic02.jpeg
- (2.02 KiB) 64-mal heruntergeladen
-
exiftool_DUTPic01.txt
- Output von ExifTool für DUTPic01.jpeg
- (3.06 KiB) 59-mal heruntergeladen
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: Exif bzw. IPTC
Ja hab deinen Fork ja auch gemergt damit alles wieder auf nem Stand ist...
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Lazarusforum e. V.
- Beiträge: 395
- Registriert: Sa 15. Mai 2010, 13:46
- CPU-Target: 64 bit
- Kontaktdaten:
Re: Exif bzw. IPTC
Ich denke, ich kann die Tage etwas Zeit abzweigen und meinen Teil ordentlich überarbeiten.
Werde mal mein Git wieder anwerfen.
Ja, richtig wäre hier glaube ich setLength(w, (Length(p^.Raw)-10) div 2); Der Fehler fällt aber erst mal nicht auf, da nur zuviel Speicher reserviert und ausgegeben wird. Jetzt weiß ich endlich, warum manchmal irgendwelche Kryptischen Zeichen ans Ende der Texte gehängt wurdenMitja, in "TImageInfo.Readcomments", im else-Zweig von "if pos('ASCII', p^.Row) = 1", [...]

Werde mal mein Git wieder anwerfen.
Re: Exif bzw. IPTC
Andreas, in der Anlage nun meine Test-Unit - alles grün!. Damit alle Tags gefunden wurden, waren ein paar Änderungen an den dEXIF-Units nötig. Die Dateien bauen auf den vorher geschickten Versionen auf.
- Dateianhänge
-
dexif.zip
- (47.37 KiB) 79-mal heruntergeladen
-
- Lazarusforum e. V.
- Beiträge: 395
- Registriert: Sa 15. Mai 2010, 13:46
- CPU-Target: 64 bit
- Kontaktdaten:
Re: Exif bzw. IPTC
So: https://github.com/mitjastachowiak
Wenn ihr mir Zugriff gebt, werde ich die Tage etwas mithelfen...
Wenn ihr mir Zugriff gebt, werde ich die Tage etwas mithelfen...
- af0815
- Lazarusforum e. V.
- Beiträge: 6768
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Exif bzw. IPTC
@Mitja Achtung du hast Schreibzugriff
auf afriess/dexif , wenn du die Anfrage bestätigst.
Meine Vorgangsweise jetzt:
*) Tests in den Master-Zweig
*) Doku in den Master-Zweig
*) Integriere dann die Änderungen in den master wenn die Tests Ok sind.
Generell stellen sich mir schon ein paar (viele) Fragen:
a) Richtiger Lazarus Fork, dann aber mit anderen Namen Bsp. -> LaxEXIF
b) Wenn nicht, wer kontrolliert gegen Delphi und vor allen gegen welche Versionen ?
c) Zu welcher Lazarus Version soll das das kompatibel bleiben ?
...
Diskussion dazu würde natürlich auch Offline/Skype4B/VOIP/ ... gehen.
Andreas

Meine Vorgangsweise jetzt:
*) Tests in den Master-Zweig
*) Doku in den Master-Zweig
*) Integriere dann die Änderungen in den master wenn die Tests Ok sind.
Generell stellen sich mir schon ein paar (viele) Fragen:
a) Richtiger Lazarus Fork, dann aber mit anderen Namen Bsp. -> LaxEXIF
b) Wenn nicht, wer kontrolliert gegen Delphi und vor allen gegen welche Versionen ?
c) Zu welcher Lazarus Version soll das das kompatibel bleiben ?
...
Diskussion dazu würde natürlich auch Offline/Skype4B/VOIP/ ... gehen.
Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: Exif bzw. IPTC
ja, sehr gut!af0815 hat geschrieben:a) Richtiger Lazarus Fork, dann aber mit anderen Namen Bsp. -> LaxEXIF
Wenn wir den Fork schon LazEXIF nennen, könnten wir genauso gut Delphi rausnehmenaf0815 hat geschrieben:b) Wenn nicht, wer kontrolliert gegen Delphi und vor allen gegen welche Versionen ?
- weniger hässliche IFDEFs
- Verwendung der FPC-Funktionen für Big-Endian-Umwandlung
Dadurch würde der Code schon ein Stück lesbarer!
Möglichst weit zurück, mindestens Laz 1.4.4/fpc 2.6.4. In der Linux-Welt haben sie oft uralte Versionen. Das heißt, all der neumoderne Schnickschnack muss draußen bleiben.af0815 hat geschrieben:c) Zu welcher Lazarus Version soll das das kompatibel bleiben ?
Folgende Wünsche von mir:
Wenn der Code einmal halbwegs stabil ist, müsste sich einer die Mühe machen, das Durcheinander von Methoden, die von der Logik her private oder protected sein sollten, im public-Abschnitt aufzuräumen und richtige Properties anstatt der eingefügten öffentlichen Objekt-Felder einzuführen (ich habe in der heute verschickten Version mit Properties Height und Width etc angefangen - man hat dadurch einfach viel mehr Möglichkeiten). Außerdem würde ich mir einen weitgehend einheitlichen Codierstil wünschen, Einrückungen kreuz und quer und unsystematische Groß/Kleinschreibung machen einem die Arbeit in dem nicht ganz einfachen Code unnötig schwer.
- af0815
- Lazarusforum e. V.
- Beiträge: 6768
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Exif bzw. IPTC
GITHUB:
a) Alle Zweige merged und dann entfernt und den Letztstand in den master gebracht.
b) Die Doku auf den Letztstand gebracht
Bitte vom jetzigen master wegarbeiten.
@wp_xyz: Es ist definitionssache wie ProcessFile Rückmeldung geben soll, aktuell ist:
Reads the file and and set the EXIF or IPTC information
true = file is readable and is a valid format eg. jpg or tiff act.
false = file is not readable or an not supported type or has no metadata
das ist das, was ich davon aus dem Code verstanden habe und wenn ich mir die Beispiele vom original Author ansehe. Diese definition ist nachvollziehbar, weil wenn die Datei nicht auswertbar ist, warum sollte ich dann weitermachen. Die grundlegende Frage ist, ob man das mit den Metadaten hier schon abfrägt oder nicht. Deswegen schlägt der Test bei der Datei OHNE EXIF aktuell fehl.
Vor allen denke ich daran, wenn es support für das Schreiben gibt, ob man da nicht die definition etwas ändern sollte.
Andreas
a) Alle Zweige merged und dann entfernt und den Letztstand in den master gebracht.
b) Die Doku auf den Letztstand gebracht
Bitte vom jetzigen master wegarbeiten.
@wp_xyz: Es ist definitionssache wie ProcessFile Rückmeldung geben soll, aktuell ist:
Reads the file and and set the EXIF or IPTC information
true = file is readable and is a valid format eg. jpg or tiff act.
false = file is not readable or an not supported type or has no metadata
das ist das, was ich davon aus dem Code verstanden habe und wenn ich mir die Beispiele vom original Author ansehe. Diese definition ist nachvollziehbar, weil wenn die Datei nicht auswertbar ist, warum sollte ich dann weitermachen. Die grundlegende Frage ist, ob man das mit den Metadaten hier schon abfrägt oder nicht. Deswegen schlägt der Test bei der Datei OHNE EXIF aktuell fehl.
Vor allen denke ich daran, wenn es support für das Schreiben gibt, ob man da nicht die definition etwas ändern sollte.
Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
- af0815
- Lazarusforum e. V.
- Beiträge: 6768
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Exif bzw. IPTC
Ich habe das versucht, nur beim gegenprüfen mit den originalen Demos, habe ich gesehen, das der auf alles von aussen zugreiftwp_xyz hat geschrieben:Folgende Wünsche von mir:
Wenn der Code einmal halbwegs stabil ist, müsste sich einer die Mühe machen, das Durcheinander von Methoden, die von der Logik her private oder protected sein sollten, im public-Abschnitt aufzuräumen und richtige Properties anstatt der eingefügten öffentlichen Objekt-Felder einzuführen (ich habe in der heute verschickten Version mit Properties Height und Width etc angefangen - man hat dadurch einfach viel mehr Möglichkeiten). Außerdem würde ich mir einen weitgehend einheitlichen Codierstil wünschen, Einrückungen kreuz und quer und unsystematische Groß/Kleinschreibung machen einem die Arbeit in dem nicht ganz einfachen Code unnötig schwer.

Die Frage nach dem Codierstil, hehe ist so alt wie das Thema Pascal<->C, auf was wollen wir uns einigen ?
Andreas
BTW: wp_xyz hast du einen Github-Account (ev. per PN/Mail) ?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: Exif bzw. IPTC
Nein, einen GitHub-Account habe ich nicht. Mal sehen, muss mich erst einarbeiten... Aber ohne, wird es problematisch, ich habe eben gesehen, dass von meinen geschickten Dateien so gut wie nichts im Master angekommen ist...
- af0815
- Lazarusforum e. V.
- Beiträge: 6768
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Exif bzw. IPTC
Oops, muss ich nochmals kontrollieren.wp_xyz hat geschrieben:Nein, einen GitHub-Account habe ich nicht. Mal sehen, muss mich erst einarbeiten... Aber ohne, wird es problematisch, ich habe eben gesehen, dass von meinen geschickten Dateien so gut wie nichts im Master angekommen ist...
Edit: Sorry, doppelt gemoppelt gewesen, beim einspielen der Kommentare, ist nicht die richtige Version hinzugekommen und hat die Änderungen von dir überbügelt. Sollte jetzt nicht mehr vorkommen, nachdem alle Versionen jetzt bei einander sein sollten.
Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
- af0815
- Lazarusforum e. V.
- Beiträge: 6768
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Exif bzw. IPTC
Test mit Lazarus 1.4.4 r55637 FPC 2.6.4 i386-win32-win32/win64 gehen nicht. Das lässt sich schon mal nicht kompilieren. TFPReaderJpeg.ImageSize gabs damals noch nicht.
Die Frage ist nur, was für IFDEFS sind dann sinnvoll.
Andreas
Die Frage ist nur, was für IFDEFS sind dann sinnvoll.
Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Lazarusforum e. V.
- Beiträge: 395
- Registriert: Sa 15. Mai 2010, 13:46
- CPU-Target: 64 bit
- Kontaktdaten:
Re: Exif bzw. IPTC
Ich bin auch kein Fan von GIT, aber irgendwie komme ich damit inzwischen klar..
Wollen wir morgen Abend mal telefonieren? Habe vormittags 'ne Klausur aber abends sollte gehen.
Wollen wir morgen Abend mal telefonieren? Habe vormittags 'ne Klausur aber abends sollte gehen.
Re: Exif bzw. IPTC
Stimmt... Ich habe mir jetzt die entsprechende Routine aus fpspreadsheet ausgeliehen, zusammengekürzt und mit einem {$IF FPC_FULLVERSION < 30000} bedingt eingebunden. Damit kompiliert das Package auch mit der ältesten Version, die ich noch auf dem Rechner habe (Laz 1.0 / fpc 2.6.0), wobei hier aber das BaseSample nicht mehr übersetzt werden kann (ValueListEditor.InsertRow gab's noch nicht). Ab 1.2 geht auch diese Demo.af0815 hat geschrieben:Test mit Lazarus 1.4.4 r55637 FPC 2.6.4 i386-win32-win32/win64 gehen nicht. Das lässt sich schon mal nicht kompilieren. TFPReaderJpeg.ImageSize gabs damals noch nicht.
Wahrscheinlich wird es mit älteren Versionen Probleme mit der String-Konvertierung geben, z.B. beim Kommentarfeld. Zum Glück sind die allermeisten Strings ASCII (<128), und ich bezweife, ob die immer wieder vorkommenden ansistring-Casts wirklich nötig sind.
Mit 1.4.4 (und früher) bin ich dann noch auf einen Fehler in dEXIF gestoßen. Im BaseSample sind meine eigenen Fotos in TImageInfo.Calc35Equiv abgestürzt, weil ein dafür benötigtes Tags in der Tag-Liste auskommentiert war. Außerdem hat die Routine bei einer fehlgeschlagenen Tag-Suche trotzdem weitergearbeitet - von diese Sorte könnte ich mir noch einige Fehler vorstellen...
Das zip im Anhang enthält die korrigierte dEXIF.pas, sowie ein diff zum jetzigen Zustand.
- Dateianhänge
-
dexif.zip
- (30.45 KiB) 92-mal heruntergeladen
Zuletzt geändert von wp_xyz am Mo 7. Aug 2017, 00:22, insgesamt 1-mal geändert.