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


100

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

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

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

  • IDF0 --- IDF @ [134 - 248] (9 записей)
    • Ориентация (КОРОТКАЯ): 1
    • Разрешение XR (РАЦИОНАЛЬНОЕ): 72/1
    • ГРазрешение (РАЦИОНАЛЬНОЕ): 72/1
    • Единица разрешения (КОРОТКАЯ): 2
    • Программное обеспечение (ASCIIx16): QuickTime 7.6.6
    • Дата и время (ASCIIx20): 2011: 10: 02 22:43:37
    • HostComputer (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
    • Комментарий пользователя (НЕОПРЕДЕЛЕН x63): ASCII
    • FlashpixVersion (UNDEFINEDx4): 0100
    • ColorSpace (КОРОТКИЙ): 1
    • PixelXDimension (ДЛИННЫЙ): 1022
    • PixelYDimension (ДЛИННЫЙ): 486
    • Неизвестно (ASCIIx13): Тег изображения-LOL
    • SceneCaptureType (КОРОТКИЙ): 0

 

  • GPS IDF --- IDF @ [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
    • Неизвестно (RATIONAL): 3694/117

 

Ответы:


131

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

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


30

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

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


Это очень хорошо знать! Вы знаете, извлекает ли он его также из TIFF?
Оливье - interfaSys

4
Группа PNG недавно рассматривала возможность добавления нового блока «eXIf» и / или «zXIf» для хранения информации EXIF. В ExifTool 10.43 добавлена ​​поддержка фрагментов «exIf» и «zxIf» в поддержку этого.
PhilHarvey

9

PNG не поддерживает встраивание информации EXIF. При преобразовании из JPEG в PNG информация теряется.


1
Эй, есть какая-нибудь документация, в которой это сказано? Потому что мне нужно доказательство, чтобы сообщить моему руководителю, что я работаю над проектом, который требует, чтобы я прочитал информацию EXIF ​​для png. Если это так, я мог бы показать ему и сообщить об этом
user1004413

9
Вы можете указать ему на спецификацию , в которой нет явной или явной спецификации для встраивания данных EXIF, или на запись вики PNG .
Perception

5
Это не совсем правда. Например, если вы используете convert(из ImageMagick) для преобразования JPEG в PNG, а затем используете convertдля преобразования PNG обратно в JPEG, новый JPEG все равно будет содержать данные EXIF.
mofoe 02 окт.15,

GIMP сохраняет «Комментарии пользователя» в PNG как метаданные «EXIF2». Кажется, что в чанках есть поле для этого. Я не уверен, как именно и почему. У меня тоже есть подобное требование.
VectorVictor

1
В 2012 году этот ответ мог быть правдой, но верен ли он по-прежнему?
RockPaperLz- Mask it or Casket

8

По состоянию на июль 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 может быть ограничена во многих приложениях.


2

Вы имели в виду:

  1. Содержат ли файлы PNG указанные вами элементы метаданных? Краткий ответ: бывает по-разному.
  2. Использует ли PNG стандарт EXIF ​​для хранения таких метаданных? Краткий ответ: Вообще-то нет.

Как правило, PNG использует различные фрагменты, которые являются частью стандарта PNG для хранения метаданных. Чтобы просмотреть свой список:

  • Ориентация - неприменимо к PNG - фиксируется построчно, начиная с верхнего левого угла.
  • XResolution, YResolution, ResolutionUnit - фрагмент pHYs .
  • Программное обеспечение, HostComputer, другие текстовые метаданные - фрагменты tEXt, iTXt, zTXt .
  • DateTime - мне непонятно, что это за дата / время. tIME указывает дату / время последнего изменения данных изображения; другие даты / время могут быть сохранены в виде фрагментов текста. Время создания на самом деле является определенным ключом фрагмента текста, но формат и то, как обрабатываются часовые пояса, не оговорены, что является плохим дизайном.
  • ColorSpace, PixelXDimension, PixelYDimension - не уверен, как это будут метаданные. Они имеют основополагающее значение для изображения и находятся в блоке IHDR .
  • Не уверен, что означают остальные, которые вы перечислили.

Но, что удивительно, в последние годы в официальный список блоков расширения (который, по сути, является дополнением к спецификации PNG) был добавлен блок eXIf . Предположительно, он нацелен на сохранение информации в файлах, преобразованных из JPEG / TIFF в PNG, и не предназначен для использования в файлах, изначально созданных как PNG, но это не ясно.


1

Да и нет.

Как уже указывалось в других ответах, PNG не имел формального фрагмента EXIF, пока он не eXIfбыл добавлен в v1.5.0 (2017), и, насколько мне известно, этот фрагмент все еще не пользуется широкой поддержкой.

Но это потому, что это не нужно. Многие части программного обеспечения кодируют EXIF ​​в PNG по соглашению в iTXt(или в сжатом zTXt) блоке с пометкой «Raw profile type APP1» . Новый eXIfкусок был предназначен для обеспечения стандартизированного местоположения для этого, хотя, на мой взгляд, этот корабль уже отплыл.

Кроме того, большая часть метаданных стандарта EXIF ​​может быть представлена ​​XMP, альтернативным и более новым механизмом транспортировки метаданных, который имеет пространство имен EXIF ​​именно для этой цели. Файлы PNG включают в себя документы XMP (включая переведенные метаданные EXIF) iTXtчастями в течение многих лет. Вы обнаружите, что многие процессоры преобразуют их на лету.


Преобразовывают ли эти же процессоры, какими бы они ни были, XMP или EXIF ​​в / из различных стандартных блоков метаданных PNG?
Стюарт,

@Stewart Стандартные блоки метаданных PNG ограничены и не могут представлять весь объем данных EXIF ​​или XMP. Вот почему мы исторически кодировали EXIF ​​/ XMP в файлы (в текстовых фрагментах).
Астероиды с крыльями

Хорошо, я перефразирую это: преобразуют ли те же самые процессоры те элементы метаданных XMP или EXIF, которые могут быть представлены стандартными фрагментами метаданных PNG, в стандартные фрагменты метаданных PNG, и наоборот?
Стюарт

@ Стюарт, я не знаю. Я сомневаюсь в этом. Если они это сделают, это будет очень ограничено. В целом от этого нет никакой пользы; Поля EXIF ​​и XMP могут быть нестандартными, но они вполне обычны и широко используются. Так что все просто этим пользуются. Метаданные PNG включают некоторые ключевые слова / данные об авторе, но в основном это данные изображений.
Астероиды с крыльями,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.