Hallo!
Wie kann man den\die\das (oder wie auch immer) EXIF von einem JPEG auf ein anderes übertragen?
Hintergrund: Durch die Bildverarbeitung mit verschiedenen Grafikprogrammen gingen die EXIFs verloren. Bisher hat das niemand gestört, doch nun wären diese wichtig. Die orginalen JPEGs gibt's zum Glück noch, doch wäre es wohl bedeutend einfacher die EXIFs auf die bearbeiteten JPEGs zu übertragen als die Grafikbearbeitung nochmals zu wiederholen.
Weiß jemand wie man das am besten machen kann? Ich habe mich mal mit dEXIF beschäftigt. Leider bekomme ich das allerdings nicht so richtig hin.
Delphi-Quellcode:
procedure TForm1.CopyEXIF(const FileNameEXIFSource,FileNameEXIFTarget: string);
var ImgData: TImgData;
Data: string; // EXIF-Daten
JPEGImage: TJPEGImage;
begin
ImgData:= TimgData.Create;
try
// Zielbild laden und EXIF-Daten zwischenspeichern
ImgData.BuildList:= GenAll;
ImgData.ProcessFile(FileNameEXIFSource);
if ImgData.HasEXIF then begin
Data:= ImgData.GetDataBuff;
// Quellbild laden
ImgData.BuildList:= GenAll;
ImgData.ProcessFile(FileNameEXIFTarget);
if not ImgData.HasEXIF or
(MessageDLG('Die Datei '''+FileNameEXIFTarget+''' hat selbst ein EXIF! Soll dieser wirklich überschrieben werden?',
mtConfirmation,[mbYes,mbNo],0)=mrYes)then begin
JPEGImage:= TJPEGImage.Create;
try
JPEGImage.LoadFromFile(FileNameEXIFTarget);
// EXIF-Daten kopieren
ImgData.SetDataBuff(Data);
ImgData.WriteEXIFjpeg(JPEGImage,FileNameEXIFTarget);
finally
JPEGImage.Free;
end;
end;
end
else MessageDLG('Die Datei '''+FileNameEXIFSource+''' hat kein EXIF!',mtError,[mbOk],0);
finally
FreeAndNil(ImgData);
end;
end;
Habe ich da einen Denkfehler drin? Oder geht das mit dEXIF gar nicht?
Gruß
e-gon