Einzelnen Beitrag anzeigen

Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: JPG resizen - Exif Daten erhalten

  Alt 16. Okt 2008, 22:31
Hallo,

ja dEXIF kannst du nutzen. Kopiere dazu die dEXIF.pas in das Verzeichnis deines Projekts oder füge den Pfad zum Bibliothekspfad in den Delphi-Optionen hinzu (ersteres ist wohl einfacher). Binde dann die unit in dein Projekt ein:

uses dEXIF; // einfach ganz oben dazuschrieben Dann legst du eine Variable für die EXIF-Infos an (bsp. im private-Abschnitt):

ImgData: TImgData; Ich nutze das bei mir dann wie folgt (das geht auch schöner ohne globale Variable, aber für den Anfang reicht's).

Deklaration der folgenden Prozeduren (ebenfalls im private-Abschnitt):

Delphi-Quellcode:
procedure ReadEXIF(FileName: string);
procedure SaveEXIF(NewJPEG: TJPEGImage; FileName: string);
Und die eigentlichen dann im implementation-Teil:

Delphi-Quellcode:
procedure TForm1.ReadEXIF(FileName: string);
begin
  ImgData.ProcessFile(FileName);

  if not ImgData.HasMetaData() then
    exit; // nicht sonderlich sauber

  if ImgData.HasThumbnail then
    ImgData.ExifObj.ProcessThumbnail;
end;

procedure TForm1.SaveEXIF(NewJPEG: TJPEGImage; FileName: string);
begin
  ImgData.WriteEXIFjpeg(NewJPEG, FileName);
end;
Der Aufruf erfolgt so:

Delphi-Quellcode:
// EXIF-Infos einlesen
ReadEXIF('c:\...\deineDatei.jpg');

MyJPEGImage := TJPEGImage.Create;
try
  MyJPEGImage.LoadFromFile(...);

  // Hier kannst du das Bild nun nach Belieben ändern
  // ...

  // EXIF-Infos zurückschreiben und TJPEGImage speichern
  SaveEXIF(MyJPEGImage, 'c:\...\neuesBild.jpg');
finally
  FreeAndNil(MyJPEGImage);
end;
Grüße, Matze
  Mit Zitat antworten Zitat