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

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

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

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

  • IDF0 --- IDF @ [134 - 248] (9 записей)
    • Ориентация (КОРОТКАЯ): 1
    • XResolution (RATIONAL): 72/1
    • YResolution (РАЦИОНАЛЬНЫЙ): 72/1
    • ResolutionUnit (SHORT): 2
    • Программное обеспечение (ASCIIx16): QuickTime 7.6.6
    • DateTime (ASCIIx20): 2011: 10: 02 22:43:37
    • HostComputer (ASCIIx16): Mac OS X 10.6.8
    • Exif IFD (LONG): 8 34853
    • GPS IFD (ДОЛГО): 248

  • EXIF IDF --- IDF @ [8 - 134] (10 записей)
    • ExifVersion (НЕ УКАЗАНО x4): 0220
    • DateTimeOrigina (ASCIIx20): 2011: 04: 14 17:22:01
    • UserComment (UNDEFINEDx63): ASCII
    • FlashpixVersion (НЕ УКАЗАНО x4): 0100
    • ColorSpace (SHORT): 1
    • PixelXDimension (LONG): 1022
    • PixelYDimension (LONG): 486
    • Неизвестный (ASCIIx13): изображение тега-LOL
    • SceneCaptureType (SHORT): 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
    • Неизвестно (РАЦИОНАЛЬНО): 3694/117

4 ответа

Решение

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

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

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

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

Да и нет.

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

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

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

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

  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, но это не ясно.

Другие вопросы по тегам