AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi JPG-Header lesen und speichern
Thema durchsuchen
Ansicht
Themen-Optionen

JPG-Header lesen und speichern

Ein Thema von ThoPos · begonnen am 29. Apr 2008 · letzter Beitrag vom 30. Jul 2015
Antwort Antwort
Seite 1 von 2  1 2      
ThoPos

Registriert seit: 30. Jun 2004
Ort: Köln
69 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

JPG-Header lesen und speichern

  Alt 29. Apr 2008, 19:54
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
Thomas
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: JPG-Header lesen und speichern

  Alt 29. Apr 2008, 20:18
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
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#3

Re: JPG-Header lesen und speichern

  Alt 29. Apr 2008, 20:27
Neuer Link (JPEG Unit): http://cc.codegear.com/Item/19723 oder Anhang.
Angehängte Dateien
Dateityp: zip 19723_enhanced_jpeg_implementation_146.zip (1,16 MB, 110x aufgerufen)
Thomas
  Mit Zitat antworten Zitat
ThoPos

Registriert seit: 30. Jun 2004
Ort: Köln
69 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#4

Re: JPG-Header lesen und speichern

  Alt 29. Apr 2008, 22:08
Bisher bearbeite ich die Bilder als Bitmap. Das mit der JPG-Komponente sieht vielversprechend aus.

Nur moniert bei mir Delphi2007 die Befehlszeile 116:

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

Gruß aus Köln
Thomas
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#5

Re: JPG-Header lesen und speichern

  Alt 29. Apr 2008, 22:12
Zitat von ThoPos:
Nur moniert bei mir Delphi2007 die Befehlszeile 116:
Was für ein Fehler wird angezeigt?
Thomas
  Mit Zitat antworten Zitat
ThoPos

Registriert seit: 30. Jun 2004
Ort: Köln
69 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

Re: JPG-Header lesen und speichern

  Alt 30. Apr 2008, 06:09
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
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

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

Re: JPG-Header lesen und speichern

  Alt 30. Apr 2008, 06:22
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
  Mit Zitat antworten Zitat
ThoPos

Registriert seit: 30. Jun 2004
Ort: Köln
69 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#8

Re: JPG-Header lesen und speichern

  Alt 30. Apr 2008, 12:43
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
Thomas
  Mit Zitat antworten Zitat
olaf43

Registriert seit: 2. Dez 2010
9 Beiträge
 
#9

AW: Re: JPG-Header lesen und speichern

  Alt 2. Dez 2010, 09:15
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
Wichard
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.058 Beiträge
 
Delphi 12 Athens
 
#10

AW: JPG-Header lesen und speichern

  Alt 2. Dez 2010, 10:19
eventuell handelt es sich hierbei um die gewünschte Datei
Bei Google suchendEXIF.pas > http://my-svn.assembla.com/svn/App_Smallsee/dEXIF.pas
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:27 Uhr.
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