Enthält PNG EXIF-Daten wie JPG?


100

Ich habe mich gefragt, ob PNG Daten wie die folgenden enthält.

Was ich getan habe, war, die JPG-Datei in das PNG-Format zu konvertieren, und ich hatte erwartet, die gleichen Informationen abzurufen, die ich auf dem JPG hatte wie unten:

Derzeit wird diese as3-Bibliothek zum Lesen der Daten verwendet.

  • IDF0 --- IDF @ [134 - 248] (9 Einträge)
    • Orientierung (KURZ): 1
    • XResolution (RATIONAL): 72/1
    • YResolution (RATIONAL): 72/1
    • ResolutionUnit (SHORT): 2
    • Software (ASCIIx16): QuickTime 7.6.6
    • DateTime (ASCIIx20): 2011: 10: 02 22:43:37
    • HostComputer (ASCIIx16): Mac OS X 10.6.8
    • Exif IFD (LANG): 8 34853
    • GPS IFD (LANG): 248

 

  • EXIF IDF --- IDF @ [8 - 134] (10 Einträge)
    • ExifVersion (UNDEFINEDx4): 0220
    • DateTimeOrigina (ASCIIx20): 2011: 04: 14 17:22:01
    • UserComment (UNDEFINEDx63): ASCII
    • FlashpixVersion (UNDEFINEDx4): 0100
    • ColorSpace (KURZ): 1
    • PixelXDimension (LANG): 1022
    • PixelYDimension (LANG): 486
    • Unbekannt (ASCIIx13): Image Tag-LOL
    • SceneCaptureType (SHORT): 0

 

  • GPS IDF --- IDF @ [248 - 338] (7 Einträge)
    • Interoperabilitätsindex (ASCIIx2): N.
    • Interoperabilitätsversion (RATIONALx3) @ 425: 52/1, 1144/100, 0/1
    • Unbekannt (ASCIIx2): W.
    • Unbekannt (RATIONALx3): 1/1, 4392/100, 0/1
    • Unbekannt (RATIONAL): 5/1
    • Unbekannt (ASCIIx2): T.
    • Unbekannt (RATIONAL): 3694/117

 

Antworten:


131

Bearbeiten: Version 1.5.0 (Juli 2017) der Erweiterungen der PNG 1.2-Spezifikation hat endlich einen EXIF-Block hinzugefügt. Es bleibt abzuwarten, ob Encoder-Decoder beginnen, dies zu unterstützen.

Original: PNG bettet keine EXIF-Informationen ein. Es ermöglicht jedoch das Einbetten von Metadaten " Chunks " in das Bild. Einige der standardisierten Chunks entsprechen einigen EXIF-Attributen (physikalische Abmessungen, Zeitstempel). Es ist auch möglich, beliebige Textdaten key=>valuepaarweise zu speichern oder neue Chunk-Typen zu definieren. Sie könnten also theoretisch alle EXIF-Informationen speichern ... aber leider in Ihrem eigenen benutzerdefinierten Format. Einige Versuche, sich zu standardisieren, haben anscheinend nicht aufgeholt.


30

Bearbeiten: Ab Juli 2017 unterstützt PNG offiziell einen eXIf-Block zum Speichern von EXIF-Metadaten ( Spezifikation ). ExifTool 10.59 und höher schreiben EXIF ​​in PNG-Bilder in diesen neuen Block.

Original: ImageMagick speichert EXIF-Informationen in einem zTXt-Block "Raw-Profiltyp APP1" von PNG, wenn sie aus JPEG-Bildern konvertiert werden. Diese Methode zum Speichern von EXIF ​​in PNG-Bildern wird auch von ExifTool unterstützt (und ich glaube auch Exiv2), ist jedoch nicht Teil der PNG- oder EXIF-Spezifikation.


Das ist sehr gut zu wissen! Wissen Sie, ob es auch aus TIFF extrahiert wird?
Olivier - interfaSys

4
Die PNG-Gruppe hat kürzlich erwogen, einen neuen Block "eXIf" und / oder "zXIf" hinzuzufügen, um EXIF-Informationen zu speichern. ExifTool 10.43 hat Unterstützung für "exIf" - und "zxIf" -Blöcke hinzugefügt, um dies zu unterstützen.
PhilHarvey

9

PNG unterstützt das Einbetten von EXIF-Informationen nicht. Wenn Sie von JPEG nach PNG konvertieren, gehen die Informationen verloren.


1
Hey, gibt es eine Dokumentation, die das sagt? weil ich einen Beweis brauche, um meinen Vorgesetzten wissen zu lassen, während ich an einem Projekt arbeite, bei dem ich die EXIF-Informationen für png lesen muss. Wenn das der Fall ist, könnte ich es ihm zeigen und ihn darüber informieren
user1004413

9
Sie können ihn auf die Spezifikation verweisen , die keine implizite oder explizite Spezifikation für die Einbettung von EXIF-Daten enthält, oder auf den PNG-Wiki-Eintrag .
Wahrnehmung

5
Dies ist nicht ganz richtig. Wenn Sie beispielsweise convert(von ImageMagick) ein JPEG in ein PNG convertkonvertieren und dann das PNG wieder in ein JPEG konvertieren, enthält das neue JPEG weiterhin die EXIF-Daten.
Mofoe

GIMP speichert "Benutzerkommentar" in einem PNG als "EXIF2" -Metadaten. Es scheint, dass es dafür ein Feld in den Stücken gibt. Das genaue Wie und Warum bin ich mir nicht sicher. Ich habe selbst eine ähnliche Anforderung.
VectorVictor

1
Im Jahr 2012 mag diese Antwort richtig gewesen sein, aber ist sie immer noch richtig?
RockPaperLz-Mask it oder Casket

7

Ab Juli 2017 scheint es einen offiziell registrierten Block für EXIF-Daten mit dem Namen ... eXIf :

Das Datensegment des eXIf-Blocks enthält ein Exif-Profil in dem in "4.7.2 Interoperabilitätsstruktur von APP1 in komprimierten Daten" von [CIPA DC-008-2016] angegebenen Format, mit Ausnahme des JPEG APP1-Markers, der Länge und des "Exif Der in 4.7.2 (C) beschriebene ID-Code "Exif", NULL und das Füllbyte sind nicht enthalten.

Beachten Sie, dass dies sowohl A) nur ein paar Monate alt (zum Zeitpunkt des Schreibens) als auch B) eine optionale Erweiterung ist, die nicht Teil der Grundspezifikation ist. Daher ist die Unterstützung für den eXIf-Block in vielen Anwendungen möglicherweise eingeschränkt.


2

Meintest du:

  1. Enthalten PNG-Dateien die von Ihnen aufgelisteten Metadatenelemente? Kurze Antwort: Es variiert.
  2. Verwendet PNG den EXIF-Standard zum Speichern solcher Metadaten? Kurze Antwort: Im Allgemeinen nein.

Im Allgemeinen verwendet PNG verschiedene Chunks, die Teil des PNG-Standards zum Speichern von Metadaten sind. So gehen Sie Ihre Liste durch:

  • Ausrichtung - Gilt nicht für PNG - wird von links oben zeilenweise festgelegt.
  • XResolution, YResolution, ResolutionUnit - pHYs Chunk.
  • Software, HostComputer, andere Textmetadaten - tEXt-, iTXt-, zTXt- Chunks.
  • DateTime - Mir ist nicht klar, von welchem ​​Datum / welcher Uhrzeit dies ist. tIME gibt das Datum und die Uhrzeit der letzten Änderung der Bilddaten an. andere Daten / Zeiten können in Textblöcken gespeichert werden. Die Erstellungszeit ist eigentlich ein definierter Textblockschlüssel, aber das Format und die Behandlung von Zeitzonen sind nicht festgelegt, was ein schlechtes Design ist.
  • ColorSpace, PixelXDimension, PixelYDimension - nicht sicher, wie diese Metadaten sein würden. Sie sind für das Image von grundlegender Bedeutung und befinden sich als solche im IHDR-Block .
  • Ich bin mir nicht sicher, was die anderen, die Sie aufgelistet haben, bedeuten.

Aber rätselhafterweise wurde in den letzten Jahren ein eXIf-Block zur offiziellen Liste der Erweiterungsblöcke hinzugefügt (was im Wesentlichen ein Nachtrag zur PNG-Spezifikation ist). Vermutlich zielt es darauf ab, die Informationen in Dateien zu erhalten, die von JPEG / TIFF in PNG konvertiert wurden und nicht für Dateien vorgesehen sind, die ursprünglich als PNGs erstellt wurden, aber das ist nicht klar.


0

Ja und nein.

Wie bereits in anderen Antworten erwähnt, hatte PNG erst eXIfin Version 1.5.0 (2017) einen formalen EXIF- Block, und meines Wissens genießt dieser Block immer noch keine breite Unterstützung.

Aber das liegt daran, dass es es nicht braucht. Viele Softwareteile codieren EXIF ​​in einem PNG gemäß Konvention in einem iTXt(oder komprimierten zTXt) Block mit der Bezeichnung "Raw-Profiltyp APP1" . Das neuere eXIfStück sollte einen standardisierten Standort dafür bieten, obwohl dieses Schiff meiner Meinung nach jetzt gesegelt ist.

Darüber hinaus kann ein Großteil der Metadaten des EXIF-Standards durch XMP dargestellt werden, einen alternativen und neueren Metadatentransportmechanismus, der genau zu diesem Zweck über einen EXIF-Namespace verfügt. PNG-Dateien enthalten seit Jahren XMP-Dokumente (einschließlich übersetzter EXIF-Metadaten) in iTXtBlöcken. Sie werden feststellen, dass viele Prozessoren im laufenden Betrieb zwischen den beiden konvertieren.


Konvertieren dieselben Prozessoren, was auch immer sie sind, XMP oder EXIF ​​in / aus den verschiedenen Standard-PNG-Metadatenblöcken?
Stewart vor
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.