Содержит ли 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
куски годами. Вы обнаружите, что многие процессоры преобразуют их на лету.
Вы имели в виду:
- Содержат ли файлы PNG указанные вами элементы метаданных? Краткий ответ: бывает по-разному.
- Использует ли 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, но это не ясно.