Содержит ли PNG данные EXIF, такие как JPG?

Мне было интересно, содержит ли PNG следующие данные?

то, что я сделал, это преобразовать файл jpg в формат png, и я ожидал получить ту же информацию, что и в jpg, как показано ниже:

в настоящее время используют эту в AS3 библиотека для чтения данных.

  • IDF0 - - - IDF @[134 - 248] (9 записей)
    • ориентация (короткая): 1
    • XResolution (рациональное): 72/1
    • YResolution (рациональный) : 72/1
    • ResolutionUnit (SHORT): 2
    • Программное Обеспечение (ASCIIx16): QuickTime 7.6.6
    • DateTime (ASCIIx20) : 2011:10:02 22:43:37
    • хост-компьютер (ASCIIx16): Mac OS X 10.6.8
    • Exif IFD (длинный): 8 34853
    • GPS IFD (ДЛИННЫЙ): 248

  • EXIF IDF - - - IDF @[8-134] (10 вступления)
    • ExifVersion (UNDEFINEDx4) : 0220
    • DateTimeOrigina (ASCIIx20) : 2011:04:14 17:22:01
    • UserComment (UNDEFINEDx63) : ASCII
    • FlashpixVersion (UNDEFINEDx4) : 0100
    • цветовое пространство (короткое): 1
    • PixelXDimension (длинный): 1022
    • PixelYDimension (длинный): 486
    • неизвестно (ASCIIx13): тег изображения-LOL
    • SceneCaptureType (короткий) : 0

  • GPS и ИДФ--- ИДФ @[248 - 338](7 записей)
    • Индекс Совместимости (ASCIIx2): N
    • Версия Совместимости (RATIONALx3) @425: 52/1, 1144/100, 0/1
    • Неизвестно (ASCIIx2): W
    • Неизвестно (RATIONALx3): 1/1, 4392/100, 0/1
    • неизвестно (рационально): 5/1
    • Неизвестно (ASCIIx2): T
    • неизвестно (рационально) : 3694/117

4 ответов


PNG не вставляет информацию EXIF. Это позволяет, однако, вставлять метаданные"блоки" внутри изображение. Некоторые из стандартизированные блоки соответствуют нескольким атрибутам EXIF (физические размеры, метка времени). И также возможно хранить произвольные текстовые данные как key=>value пары, или определить новые типы блоков. Таким образом, теоретически вы можете хранить любую информацию EXIF... но, увы, в своем собственном формате. Некоторые попытки standarize не догнали, кажется.

Edit: версия 1.5.0 (июль 2017)расширения спецификации PNG 1.2 наконец-то добавил кусок EXIF. Остается увидеть, начинают ли его поддерживать кодеры-декодеры.


ImageMagick хранит информацию EXIF в PNG "Raw profile type APP1" ztxt при конвертации из изображений JPEG. Этот метод хранения EXIF в PNG-изображениях также поддерживается ExifTool (и я считаю, что Exiv2 тоже), но он не является частью спецификации PNG или EXIF.

Edit: с июля 2017 года PNG официально поддерживает блок eXIf для хранения метаданных EXIF (спецификация). ExifTool 10.59 и позже напишите EXIF на этот новый фрагмент в PNG-изображениях.


PNG не поддерживает встраивание информации EXIF. Когда вы конвертируете из JPEG в PNG информация теряется.


по состоянию на июля 2017, похоже, официально зарегистрирован кусок для вызываемых данных EXIF... в EXIF:

сегмент данных блока eXIf содержит профиль Exif в формате, указанном в "структуре совместимости 4.7.2 APP1 в сжатых данных" [CIPA DC-008-2016], за исключением того, что маркер JPEG APP1, длина и "код идентификатора Exif", описанный в 4.7.2 (C), т. е. "Exif", NULL и Байт заполнения, не являются включенный.

обратите внимание, что это как A) всего несколько месяцев (на момент написания), так и B) необязательное расширение, а не часть базовой спецификации. Таким образом поддержка EXIF chunk может быть ограничена во многих приложениях.