AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi JPG-Datei drehen und speichern -> Verlust der Exif-Daten
Thema durchsuchen
Ansicht
Themen-Optionen

JPG-Datei drehen und speichern -> Verlust der Exif-Daten

Ein Thema von axelf98 · begonnen am 3. Sep 2005 · letzter Beitrag vom 22. Aug 2021
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#1

AW: JPG-Datei drehen und speichern -> Verlust der Exif-Daten

  Alt 6. Jul 2020, 17:03
Hallo,
ich habe ein Bildprogramm geschrieben, ca. 10 Jahre alt. Da drehe ich die JPG-Bilder verlustfrei mit GDI+. Die Meta-Daten bleiben erhalten. Das Auslesen des Orientation-Tag erfolgt mit ExifTool von Phil Harvey. Das Programm läuft seit vielen Jahren problemlos.

Gruß Willie.
Genau das bräuchte !!
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: JPG-Datei drehen und speichern -> Verlust der Exif-Daten

  Alt 6. Jul 2020, 17:06
Hier im Anhang mal 2 Bsp. Bilder, die ich im Netz zum Testen gefunden habe.

Beide werden im Windows Explorer korrekt dargestellt.

In meinem Programm (im TImage) aber nicht.

Deshalb muss ich das Bild verlustfrei anhand des EXIF Tags drehen
Angehängte Grafiken
Dateityp: jpg Landscape_6.jpg (115,7 KB, 25x aufgerufen)
Dateityp: jpg Landscape_8.jpg (116,2 KB, 21x aufgerufen)
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Benmik

Registriert seit: 11. Apr 2009
578 Beiträge
 
Delphi 12 Athens
 
#3

AW: JPG-Datei drehen und speichern -> Verlust der Exif-Daten

  Alt 6. Jul 2020, 17:19
Beide werden im Windows Explorer korrekt dargestellt. In meinem Programm (im TImage) aber nicht.
Der Explorer erkennt - wie viele Programme - die Ausrichtung und dreht die Anzeige (nicht das JPG!) entsprechend. Bei den von dir eingestellten Bildern fehlen aber alle EXIF-Daten. Ist aber egal, ändert ja nichts an der Aufgabenstellung.
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
742 Beiträge
 
Delphi 10.1 Berlin Starter
 
#4

AW: JPG-Datei drehen und speichern -> Verlust der Exif-Daten

  Alt 6. Jul 2020, 17:22
Das liegt daran, dass Windows das Orientation-Tag ausliest und das Bild entsprechend dreht, ohne es zu verändern.
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: JPG-Datei drehen und speichern -> Verlust der Exif-Daten

  Alt 6. Jul 2020, 17:24
Das liegt daran, dass Windows das Orientation-Tag ausliest und das Bild entsprechend dreht, ohne es zu verändern.
Deshalb, weil TImage das nicht kann, möchte den Orientation-Tag auslesen, das Bild entsprechend drehen und OHNE EXIF dann weiter verarbeiten
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: JPG-Datei drehen und speichern -> Verlust der Exif-Daten

  Alt 6. Jul 2020, 17:46
Das JPEG im delphi behaldet die Exif-Daten nicht, also wenn dort drin steht, dass das Bild gedreht angezeigt werden soll, dann wird es nicht beachtet.
Müsstest du also selber drehen.

Drehen über die Exif-Daten anstatt die Bilddaten direkt zu bearbeiten/verändern ist wirklich verlustfrei, da am Bild nichts geändert wird.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: JPG-Datei drehen und speichern -> Verlust der Exif-Daten

  Alt 6. Jul 2020, 17:53
Das JPEG im delphi behaldet die Exif-Daten nicht, also wenn dort drin steht, dass das Bild gedreht angezeigt werden soll, dann wird es nicht beachtet.
Müsstest du also selber drehen.

Drehen über die Exif-Daten anstatt die Bilddaten direkt zu bearbeiten/verändern ist wirklich verlustfrei, da am Bild nichts geändert wird.
Den ersten Teil verstehe ich, das ist ja quasi auch mein Problem.

Der zweite Teil verwirrt mich.
Ich schreibe nachher mein JPEG(Delphi) in die DB und wie Du schon sagtest gehen dabei die EXIF Infos verloren.
Deshalb möchte ich das Bild ja vor Anzeige in TImage drehen.
Ich kann die Bilddaten nicht über Manipulation der EXIF drehen.
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: JPG-Datei drehen und speichern -> Verlust der Exif-Daten

  Alt 6. Jul 2020, 18:37
Der zweite Teil verwirrt mich.
JPEG-Bilder enthalten eine Anweisung, wie sie zur richtigen Anzeige gedreht werden müssen. Z.B. Top left besagt, das Bild braucht nicht gedreht zu werden. http://sylvana.net/jpegcrop/exif_orientation.html
Jupp, z.B. der Windows-Image-Viewer stellt auch nur die Orientation in den Exif-Daten um, wenn man dort das Bild dreht.
Auch einige Kameras setzen diese Option, über einen Lagesensor.

Wird nur die Option geändert/gesetzt, dann wird erst bei Anzeige das Bild gedreht,
aber die eigentlichen Daten bleiben unverändert, also ist das somit 100% verlustfrei.

Wenn man das Bild "richtig" dreht, dann muß man ja die Pixel umherschieben, womit dann das Bild neu komprimiert/berechnet wird, was natürlich Verluste erzeugt.

Oder man versucht in den komprimierten Daten die Blöcke umzuorganiisieren und in der Codierung gleiche/ähnliche Blöcke in eine Version der gegrehten Ausrichtung zu ersetzen,
falls es da überhaupt möglich ist das 1:1 zu drehen.


Die JPEG-Implementation im Delphi kann das halt nicht.
Also müsstest du dir entweder eine andere Implementation besorgen. (vielleicht kann Windows das bereitstellen, wenn du TWICImage benutzt, oder du spielst mit GDI+ rum)
Oder du mußt selbst die Exif-Daten auswerten und dann das Bild im Canvas drehen, nach dem Laden der Datei.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 6. Jul 2020 um 18:40 Uhr)
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
742 Beiträge
 
Delphi 10.1 Berlin Starter
 
#9

AW: JPG-Datei drehen und speichern -> Verlust der Exif-Daten

  Alt 6. Jul 2020, 17:38
Zitat:
Ich kenne Exiftool. Du startest das Programm mit ShellExecute und liest dann den DOS-Output aus?
Ich benutze nicht ShellExecute aber das ist hier nicht wichtig. ExifTool ist das beste Programm dazu.

Frage: wie kann ich Zitat von xxx bekommen?
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: JPG-Datei drehen und speichern -> Verlust der Exif-Daten

  Alt 6. Jul 2020, 17:44
[QUOTE=Willie1;1468978]
Zitat:
Frage: wie kann ich Zitat von xxx bekommen?
Rechts unten an jedem Post ist ein Button "Zitat"
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  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 07:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz