![]() |
Re: EXIF Tag der Panasonic Lumix auslesen
Vielen Dank erstmal,
aber wie (wenn überhaupt möglich) kann ich dann mit dExif die Daten auslesen? Danke nochmal, I love Delphi! |
Re: EXIF Tag der Panasonic Lumix auslesen
Steht doch in Post #6!
Wenn du die neuen Tags zu dExif hinzugefügt hast, kannst du so die Tags auslesen und in die Kommentare schreiben. Jetzt ist wohl mal ein wenig Eigeninitiative von dir gefragt... Oder verstehe ich die Frage falsch? :gruebel: PS: Sind das denn jetzt die Strings, um die es geht??? |
Re: EXIF Tag der Panasonic Lumix auslesen
Danke GRPSNerd für die umhauende Hilfestellung.
Die Strings sind die richtigen, warum die aber doppelt drin stehen weiß ich auch nicht. Leider weiß ich jedoch nicht wie ich die neuen Tags zu dEXIF hinzufüge. Auch im mitgelieferten ProgrammersGuide.txt und in der Readme.txt finde ich darüber nichts. Es wäre nett, wenn du mir noch dieses eine letzte mal helfen würdest! :) Grüße, I love Delphi! |
Re: EXIF Tag der Panasonic Lumix auslesen
OK, ein letztes Mal noch, obwohl es eigentlich ziemlich simpel ist...
Folgende Zeilen musst du in dEXIF.pas ändern/hinzufügen:
Delphi-Quellcode:
Wenn ich jetzt die EXIF-Daten dumpe, bekomme ich folgenden Auszug:
...
GPSCnt = 30; ExifTagCnt = 250+2; //ändern!!! TotalTagCnt = GPSCnt+ExifTagCnt; ... (Tag: $A420; Name:'ImageUniqueID' ; Code:'0:Close view,1:Distant view'), (Tag: $C6D2; Name:'PanasonicTitle1' ), //hinzufügen (Tag: $C6D3; Name:'PanasonicTitle2' ), //hinzufügen (Tag: 0; Name:'Unknown')); ... Panasonic Title1 = "BLICK AUF "ES TALAIER"" Panasonic Title2 = "BLICK AUF "ES TALAIER"" Diese Tags kannst du jetzt auslesen und in die Comments schreiben. Edit: Das Speichern ist allerdings ein wenig komplizierter als ursprünglich gedacht: dEXIF kann den EXIFHeader nicht manipulieren und neu schreiben, einfügen von Comments in den JPEGHeader geht aber. Hier mal ein Codeschnipsel, mit dem das Auslesen der Tags und Einfügen in die Comments es geht. Mein Standardbildbetrachter zeigt die Kommentare jetzt an.
Delphi-Quellcode:
PS: Diese ganzen Typecasts nach string und ansistring sind bedingt durch Delphi 2009 und meiner Unicode-Portierung von dEXIF.
//Panasonic Tags ---------------------------------------------------
exif_tmp := string(ImgData.ExifObj.LookupTagVal('PanasonicTitle1')); if exif_tmp <> '' then begin e1.Text:=exif_tmp; end; exif_tmp := string(ImgData.ExifObj.LookupTagVal('PanasonicTitle2')); if exif_tmp <> '' then begin e2.Text:=exif_tmp; end; if ((e1.Text<>'') or (e2.Text<>'')) then begin ImgData.MakeCommentSegment(ansistring(e1.Text + crlf + e2.Text)); SaveDialog1.FileName := string(ImgData.Filename); if SaveDialog1.Execute then begin ImgData.WriteEXIFJpeg(AnsiString(SaveDialog1.FileName)); end; end; // ------------------------------------------------------------ |
Re: EXIF Tag der Panasonic Lumix auslesen
Hallo und danke nochmal,
habe den letzten Schritt jetzt auch hinbekommen. Leider war das alles recht umsonst, den mein Bildverwalter (Picasa von Google) speichert seine Kommentare zu Bildern im EXIF-Tag der Datei. Naja, hab' ja trotzdem einiges gelernt! Vielen Dank, I love Delphi! |
Re: EXIF Tag der Panasonic Lumix auslesen
Nochmal ich :),
hat sonst vll. noch jemand eine Idee, wie man das Problem lösen kann? Viele Grüße, I love Delphi! |
Re: EXIF Tag der Panasonic Lumix auslesen
Hallo,
direkt auf der Seite von Embarcadero findest du wohl alles was du benötigst. :thumb: So wie es ausschaut,muss man aber vor dem Ändern der Tags ein Dump des Exif machen, ansonsten wäre alles weg (zumindest habe ich keinen anderen Weg gefunden). Es sind sehr gute Beispiele mit dabei, so dass eigentlich alles klappen sollte. ![]() Edit: in der Doku wird die Klasse "TExifDataPatche" aufgeführt. Damit ist das Bearbeiten der jeweiligen Tag.ID möglich ohne dass die anderen Tag's bzw. Section's geändert werden. Siehe hierzu auch das Beispiel "TimeShift". |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz