HEIC — контейнер, а не формат изображения
Файл .heic — это ISO Base Media File Format, та же структура box'ов, что и у MP4. Внутри лежит набор элементов: обычно одно изображение, закодированное HEVC, часто миниатюра, иногда карта глубины, карта усиления HDR или несколько полных кадров серии. Метаданные — тоже элемент. EXIF занимает собственный элемент, на который указывает ссылочный box, говорящий, какое изображение он описывает, а не лежит в заголовке, как в JPEG.
Почему предпросмотр иногда не появляется
HEVC обременён патентами, поэтому Safari декодирует HEIC изначально, а большинство других браузеров — нет. Когда браузер отказывается, эта рабочая область декодирует файл декодером на WebAssembly, чтобы получить предпросмотр. Это медленнее, и на большой фотографии может не выйти — тогда вы получите теги с пометкой, что саму картинку нарисовать не удалось. Чтение метаданных никогда не зависит от декодирования изображения, так что теги будут в любом случае.
Что на самом деле пишет iPhone
Полный EXIF: модель камеры, объектив, экспозиция, ориентация и время съёмки, а при включённом определении места — широта, долгота и часто высота. Сверх того — заметки производителя Apple, собственный блок с такими вещами, как идентификатор серии и подсказки классификации сцены. Live Photo ссылается ещё и на парное видео, но это отдельный файл, и эта рабочая область его не открывает.
Как устроен HEIC
- Структура
- Может нести метаданные
- Само изображение
Где HEIC держит вещи
- meta
- Box, вмещающий все элементы файла, кроме самого изображения.
- iinf / iloc
- Какие элементы есть и по какому смещению в байтах лежит каждый.
- Элемент Exif
- Полный блок EXIF в структуре TIFF, вместе с камерой и GPS.
- Элемент mime
- XMP, когда его записал какой-нибудь редактор.
- iref
- Какой элемент какое изображение описывает.
- colr
- Цветовой профиль, теряемый при перекодировании файла.
Вопросы о HEIC
Можно прочесть HEIC, если браузер не умеет его показать?Открыть
Да. Прочесть теги — значит пройти по структуре box'ов файла, а для этого декодер HEVC не нужен. Вы увидите каждый тег; не хватать может именно предпросмотра.
Есть ли GPS в HEIC с iPhone?Открыть
Есть всегда, когда в момент съёмки для камеры было включено определение места, обычно вместе с высотой. Перетащите файл выше — и увидите координаты, если они там есть.
Как убрать метаданные из HEIC?Открыть
Через очистку перекодированием, потому что писать HEIC не умеет ни один браузер. Изображение декодируется и выгружается как JPEG без чего-либо вшитого — вы получаете чистый файл, в другом контейнере, с тем качеством, какое даст перекодирование.
Почему в моём HEIC несколько фотографий в одном файле?Открыть
Потому что контейнер это позволяет. Серии, карты глубины портретного режима и карты усиления HDR лежат дополнительными элементами рядом с основным изображением. Таблица тегов показывает метаданные основного изображения.
Что он умеет
- Удалить данные EXIF
- Перетащите фотографию и скачайте копию без вшитых метаданных. У JPEG отпадает сегмент EXIF без единого касания пикселей; HEIC, PNG, WebP и остальные перекодируются. Ничего не загружается на сервер.
- Убрать GPS-координаты
- Посмотрите координаты, которые несёт фотография, и скачайте копию без них. JPEG теряет теги места и сохраняет всё остальное. Ничего не загружается на сервер.
- Править EXIF у JPEG
- Меняйте заголовок, автора, описание, права, программу и время съёмки у JPEG, а затем скачивайте изменённую копию. Работает на устройстве; ваш исходный файл никогда не трогают.
- Просмотрщик XMP, IPTC и ICC
- Читайте каждую группу метаданных, которую несёт файл — EXIF, XMP, IPTC, ICC, заметки производителя — сгруппированными и выгружаемыми в JSON. Для контроля качества материалов, экспертизы и отладки цепочки. Ничего не загружается на сервер.
- Открыть несколько фотографий
- Откройте до пятидесяти фотографий, посмотрите, у каких есть местоположение, и заберите весь набор таблицей. Ничего не загружается, а оригиналы никогда не перезаписываются.