Einzelnen Beitrag anzeigen

Benutzerbild von GPRSNerd
GPRSNerd

Registriert seit: 30. Dez 2004
Ort: Ruhrpott
239 Beiträge
 
Delphi 10.4 Sydney
 
#14

Re: EXIF Tag der Panasonic Lumix auslesen

  Alt 6. Aug 2009, 08:53
OK, ein letztes Mal noch, obwohl es eigentlich ziemlich simpel ist...

Folgende Zeilen musst du in dEXIF.pas ändern/hinzufügen:

Delphi-Quellcode:
...
   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'));
...
Wenn ich jetzt die EXIF-Daten dumpe, bekomme ich folgenden Auszug:

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:
//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; // ------------------------------------------------------------
PS: Diese ganzen Typecasts nach string und ansistring sind bedingt durch Delphi 2009 und meiner Unicode-Portierung von dEXIF.
Stefan
  Mit Zitat antworten Zitat