Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi JPG-Header lesen und speichern (https://www.delphipraxis.net/112927-jpg-header-lesen-und-speichern.html)

ThoPos 29. Apr 2008 18:54


JPG-Header lesen und speichern
 
Hallo,

ich habe mir ein Programm für die Verwaltung und Präsentation von JPG-Bildern geschrieben.

Wenn ich aber eine Datei lade, bearbeite (z.B. 90°-Drehung, Monochrom, etc) und als neue Datei speichere, so fehlt bei der neuen Datei die Informationen aus dem Header der ursprünglichen JPG-Datei (Aufnahmedatum, Einstellungen wie Belichtungszeit, Kameramodell, etc.).

Kann und würde mir einer erklären, wie ich diese Headerinformationen auslesen, ggf. modifizieren und in die neue Datei speichern kann?

Gruß aus Köln
Thomas

Klaus01 29. Apr 2008 19:18

Re: JPG-Header lesen und speichern
 
Hallo,

wie bearbeitest Du denn das jpg Bild.
Konvertierst Du es zuerst nach bmp dann wieder nach jpg.
Hier gibt es auch einen Thread dazu. Der Link zu der jpg Unit funktioniert aber leider nicht mehr.

Grüße
Klaus

toms 29. Apr 2008 19:27

Re: JPG-Header lesen und speichern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Neuer Link (JPEG Unit): http://cc.codegear.com/Item/19723 oder :arrow: Anhang.

ThoPos 29. Apr 2008 21:08

Re: JPG-Header lesen und speichern
 
Bisher bearbeite ich die Bilder als Bitmap. Das mit der JPG-Komponente sieht vielversprechend aus.

Nur moniert bei mir Delphi2007 die Befehlszeile 116:

Delphi-Quellcode:
      jpeg.BitmapCMYKToRGB(B, true);
Die DCU jpegex habe ich in das Programmverzeichnis gelegt und entsprechend in Uses aufgenommen.

Gruß aus Köln
Thomas

toms 29. Apr 2008 21:12

Re: JPG-Header lesen und speichern
 
Zitat:

Zitat von ThoPos
Nur moniert bei mir Delphi2007 die Befehlszeile 116:

Was für ein Fehler wird angezeigt?

ThoPos 30. Apr 2008 05:09

Re: JPG-Header lesen und speichern
 
Den Fehler habe ich gefunden: habe vergessen, daß hier jpeg. durch jpegex. ersetzt werden muß.

Aber dafür ist der Erfolg mit dieser Komponente leider nicht der gewünschte. Wenn ich ein Bld drehe und speichere, dannn ist beim nächsten Laden des Bildes die Änderung vorhanden. Aber die Vorschau im Windows-Explorer zeigt sich von allen Modifikationen unbeeindruckt. Aber hier möchte ich die Änderungen auch sehen.

Gruß aus Köln
Thomas

Matze 30. Apr 2008 05:22

Re: JPG-Header lesen und speichern
 
Hallo,

wenn ich das richtig verstehe, geht's dir um die EXIF-Infos. Die kannst du mit dieser Unit auslesen und wieder (unverändert) speichern.

Delphi-Quellcode:
uses
  dEXIF;

var
  ImgData: TImgData;

ImgData := TimgData.Create;
try
  ImgData.ProcessFile('Ladepfad\bild.jpg');

  // hier das Bild bearbeiten und, falls nicht bereits geschehen, in einem TJPEGImage ablegen

  ImgData.WriteEXIFJpeg(JpegImage, 'Zielpfad\bild.jpg');
finally
  FreeAndNil(ImgData);
end;
Bei mir funktioniert's. ;)

Grüße

ThoPos 30. Apr 2008 11:43

Re: JPG-Header lesen und speichern
 
Vielen Dank für den Tipp. Funktioniert prima.

Kennst Du auch 'nen Trick, wie ich folgende EXIF-Einträge ändern, bzw. hinzufügen, kann:
- Description
- User Comment
- Comments


Gruß aus Köln
Thomas

olaf43 2. Dez 2010 08:15

AW: Re: JPG-Header lesen und speichern
 
Zitat:

Zitat von Matze (Beitrag 770013)
Hallo,

wenn ich das richtig verstehe, geht's dir um die EXIF-Infos. Die kannst du mit dieser Unit auslesen und wieder (unverändert) speichern.

Delphi-Quellcode:
uses
  dEXIF;

var
  ImgData: TImgData;

ImgData := TimgData.Create;
try
  ImgData.ProcessFile('Ladepfad\bild.jpg');

  // hier das Bild bearbeiten und, falls nicht bereits geschehen, in einem TJPEGImage ablegen

  ImgData.WriteEXIFJpeg(JpegImage, 'Zielpfad\bild.jpg');
finally
  FreeAndNil(ImgData);
end;
Bei mir funktioniert's. ;)

Grüße

Leider funktioniert der link auf die mcguirez.homestead.com Seite nicht (mehr). Gibt es einen neuen Link?
Danke!
Olaf43

himitsu 2. Dez 2010 09:19

AW: JPG-Header lesen und speichern
 
eventuell handelt es sich hierbei um die gewünschte Datei
Bei Google suchendEXIF.pas > http://my-svn.assembla.com/svn/App_Smallsee/dEXIF.pas


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:13 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz