Delphi-PRAXiS
Seite 3 von 8     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi JPG-Datei drehen und speichern -> Verlust der Exif-Daten (https://www.delphipraxis.net/52770-jpg-datei-drehen-und-speichern-verlust-der-exif-daten.html)

DataCool 6. Jul 2020 12:28

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

muss das Thema noch mal vorholen, weil mich das gerade in einem Projekt tangiert.

Hat jemand eine schlanke Unit/Klasse die das Lesen/Interpretieren von Jpg / EXIF "Orientation" ermöglicht ?

Verlustfreies Drehen / Verkleinern, wäre ebenfalls nützlich.

Die Lösungsansätze und Links weiter vorher sind leider etwas outdated.

Benötige eine funktionierende Lösung für "Rio".

Gretes Data

Rollo62 6. Jul 2020 12:40

AW: JPG-Datei drehen und speichern -> Verlust der Exif-Daten
 
Kommt das in Frage oder besser das ?

Sinspin 6. Jul 2020 12:48

AW: JPG-Datei drehen und speichern -> Verlust der Exif-Daten
 
So outdated scheint es ja nicht zu sein.
http://jpegclub.org/
Zitat:

The current version is release 9d of 12-Jan-2020
Allerdings ist es feinstes C und nicht Delphi/Pascal. Ich kann da deine Abneigung schon verstehen.

Wenn Dir Aufruf eines externen Programmes und Batchverarbeitung für drehen und verkleinern Ausreicht, ich nehme dafür immer IrfanView.

Benmik 6. Jul 2020 16:16

AW: JPG-Datei drehen und speichern -> Verlust der Exif-Daten
 
Da ich seit Jahren an einem Bildsichtungsprogramm arbeite, habe ich mit doch ziemlich mit JPG beschäftigt, und notgedrungen auch mit den EXIF-Markern und mit verlustfreier Rotation. Ich bin dabei dauernd auf der Suche nach der besten Lösung; allerdings geht es dabei eher um die schnellste Dekompression zu einer Bitmap.

Das reine Auslesen der Ausrichtung ist relativ trivial, das kannst du "zu Fuß" machen; hier gibt es auch eine Routine von mir, die ich dir zur Verfügung stellen kann. CCR-EXIF benutze ich seit Jahren nicht mehr, da es in Einzelfällen immer wieder versagt hat.

Du willst aber auch verlustfrei drehen und dabei die EXIF-Informationen behalten, das ist schon nicht mehr so trivial.
Kurz gesagt ist mein gegenwärtiger Stand der, dass da vier Möglichkeiten in Frage kommen.

Die eine ist NativJPG von Nils Haeck. Schon ein älteres Stück von 2007, aber die Struktur hat sich ja nicht geändert; es ist reines Delphi, also das, was du willst. Ein Nachteil ist, dass NativeJPG nicht mit progressiven und mit Halbton-JPG zurecht kommt; wenn dich das nicht stört, würde ein Blick sich lohnen. NativeJPG kann EXIF-Daten extrahieren und einfügen.

Eine attraktive Möglichkeit ist jpegex, das auf libjpeg-turbo basiert und von Gabriel Corneanu für Delphi portiert wurde, auch schon vor einiger Zeit. Ich habe Gabriel Corneanu vor einigen Jahren mal angeschrieben (er wohnt in Deutschland) und er hat auch geantwortet; aber mittlerweile hat er wohl keine Lust mehr auf seine alten Kamellen von anno dazumal und reagiert nicht mehr. Da ist vielleicht auch diese alte Diskussion bei Stackoverflow interessant, an der sich seinerzeit auch Uwe Raabe beteiligt hat (man beachte aber diese Diskussion). Für mich ist der Nachteil hier, dass ich auf 64-bit angewiesen bin. Mit meinen diesbezüglichen Anstrengungen war ich hier schon fast am Ziel, bevor ich wegen Unbotmäßigkeit und akuter Undankbarkeit in Acht und Bann getan wurde. Vielleicht erbarmt sich GPRSNerd deiner, du bist ja unbelastet. Ich hätte auch gern gelernt, wie man das selber macht, habe mir aber auf Stackoverflow von David Heffernan eine äußerst kalte Schulter geholt (Delphi kann hart sein).

Dann gibt es noch SynGdiPlus vom Synopse-Framework. Das kann auf jeden Fall verlustfrei drehen; bin mir aber im Moment nicht sicher, wie das mit den EXIF-Daten aussieht. SynGdiPlus ist übrigens in meinem Setting der schnellste Dekompressor von JPG noch vor FreeImage.

Zuletzt kannst du noch die DLL von FreeImage nutzen, was ich zurzeit tue. Aber du suchtest ja nach einer nativen Delphilösung.

DataCool 6. Jul 2020 16:34

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

ich habe ein recht großes Projekt, wo ich jetzt an einer einzigen Stelle Bilder jeglichen Formats(zu 99% Jpeg & PNG) einlesen muss.
Bei Jpeg müßten diese entsprechend EXIF Orientation gedreht werden, wie ist mir dabei eigentlich relativ egal.

Da es bei den Grafiken um hochwertige "Produktfotos" handelt sollten die natürlich nicht an Qualität verlieren.

Ich hatte nach einer schlanken Delphi Lösung gefragt, weil :

- Ich nicht für dieses eine Feature eine große Komponenten Sammlung einbinden wollte

- Externe Tools(.exe) fallen weg, weil ich das als "unschön" empfinde

- eine DLL-Lösung wäre zwar nicht das gelbe vom Ei aber akzeptabel.


Die Features die ich benötige sind wirklich "nur" :

- jpeg einlesen
- Falls EXIF Orientation vorhanden, diese möglichst verlustfrei verarbeiten

Danke Data

venice2 6. Jul 2020 16:43

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

Bei Jpeg müßten diese entsprechend EXIF Orientation gedreht werden
Ist Jpeg Voraussetzung oder kannst du diese vorher nach Bitmap umlegen?
Dann hätte ich eventuell etwas.

gruss

DataCool 6. Jul 2020 16:46

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

Zitat von venice2 (Beitrag 1468961)
Zitat:

Bei Jpeg müßten diese entsprechend EXIF Orientation gedreht werden
Ist Jpeg Voraussetzung oder kannst du diese vorher nach Bitmap umlegen?
Dann hätte ich eventuell etwas.

gruss

Die Bilder kommen ja als jpeg rein, wenn ich Sie einfach in BMP umwandle sind Sie ja unter Umständen "falsch" gedreht.
Und im BMP Format hast Du dann ja auch nicht mehr die ursprüngliche Information der Orientation.

venice2 6. Jul 2020 16:48

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

Zitat von DataCool (Beitrag 1468962)
Zitat:

Zitat von venice2 (Beitrag 1468961)
Zitat:

Bei Jpeg müßten diese entsprechend EXIF Orientation gedreht werden
Ist Jpeg Voraussetzung oder kannst du diese vorher nach Bitmap umlegen?
Dann hätte ich eventuell etwas.

gruss

Die Bilder kommen ja als jpeg rein, wenn ich Sie einfach in BMP umwandle sind Sie ja unter Umständen "falsch" gedreht.
Und im BMP Format hast Du dann ja auch nicht mehr die ursprüngliche Information der Orientation.

Wenn ich ein Bitmap drehe dann interessiert mich keine Orientation wenn ich die Möglichkeit habe es um 360 Grad zu drehen.
Vielleicht verstehe ich aber auch nicht was du damit bezwecken willst.

Benmik 6. Jul 2020 16:52

AW: JPG-Datei drehen und speichern -> Verlust der Exif-Daten
 
Hast du meinen Beitrag gelesen?

Willie1 6. Jul 2020 16:54

AW: JPG-Datei drehen und speichern -> Verlust der Exif-Daten
 
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:43 Uhr.
Seite 3 von 8     123 45     Letzte »    

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