← Фотогиды

Где хранятся EXIF данные в фотографии? (JPEG, PNG, HEIC)

Где на самом деле находится EXIF внутри файла фотографии? Заголовок APP1, дерево IFD, байтовые смещения и как JPEG, HEIC, PNG, TIFF и WebP хранят его.

Краткий ответ: EXIF хранится внутри самого файла изображения, а не в отдельном sidecar файле. В JPEG он находится в сегменте маркера APP1, блоке заголовка, который начинается с байтов 0xFFE1 ближе к началу файла, с тегами, организованными внутри в виде дерева TIFF/IFD (IFD0, под-IFD Exif и GPS IFD). В HEIC те же теги находятся в боксах метаданных контейнера. В PNG они могут находиться в chunk'е eXIf. TIFF хранит их нативно. Поскольку данные встроены, они путешествуют с фотографией всякий раз, когда вы её копируете или отправляете. Перетащите любую фотографию в наш просмотрщик EXIF, чтобы увидеть, что внутри. Ничего никуда не загружается.

Люди часто думают, что метаданные находятся в скрытой базе данных на их телефоне или в маленьком файле рядом с фотографией. Это не так. "Когда, где и как" записано прямо в байтах файла изображения, в зарезервированной области ближе к началу. Это руководство объясняет, где находится эта область и что происходит, когда вы редактируете или публикуете фотографию.

Краткая версия: это в файле, ближе к началу

Откройте любой JPEG прямо с камеры и посмотрите на первые несколько сотен байт. После маркера начала изображения (0xFFD8) одна из первых вещей, на которую вы наткнётесь, это сегмент маркера APP1, который содержит весь блок EXIF. Сжатые пиксели идут после него. Так что типичный JPEG с камеры выглядит так: маркер начала 0xFFD8, маркер APP1 0xFFE1, содержащий EXIF, необязательные заголовки (цветовой профиль ICC в APP2, IPTC в APP13, XMP), данные пикселей, затем маркер конца 0xFFD9. Поскольку EXIF находится в заголовке ближе к началу, отдельно от пикселей, чистое редактирование EXIF не сжимает изображение заново. Инструмент только переписывает область заголовка.

Дерево IFD: IFD0, под-IFD Exif, GPS IFD

Сегмент APP1 открывается байтами 0xFFE1, двухбайтовой длиной и идентификатором Exif\0\0. Сразу после этого полезная нагрузка начинается с крошечного заголовка TIFF: EXIF, внутренне, это маленький файл TIFF, встроенный внутрь JPEG. Этот заголовок объявляет порядок байтов (II little-endian или MM big-endian) и смещение до первой директории тегов.

Дальше теги организованы как дерево IFD (Image File Directories), а не один плоский список. У каждого своя задача:

  • IFD0 ("нулевая" или "TIFF" директория): поля уровня камеры и изображения, такие как Make, Model, Software, Orientation и Copyright. Она также содержит два тега указателя, ведущих к поддиректориям ниже.
  • Под-IFD Exif: технические данные момента съёмки. DateTimeOriginal, настройки экспозиции, объектив, ISO, цветовое пространство.
  • GPS IFD: широта, долгота, высота и метки времени, полученные от GPS, присутствуют только когда местоположение было записано.
  • IFD1 ("первая" директория): встроенная миниатюра, которую сгенерировала камера.

Считыватель обходит дерево: начинает с заголовка TIFF, переходит к IFD0, следует по указателю Exif для настроек съёмки, следует по указателю GPS для местоположения. Наш просмотрщик EXIF делает именно это и раскладывает каждую директорию в собственную таблицу. Справочник тегов EXIF это полный словарь каждого поля. Значения, которые помещаются в четыре байта, находятся внутри самой записи тега. Более крупные, такие как координата GPS, хранятся в другом месте сегмента, а запись содержит байтовое смещение к ним.

Как другие форматы хранят те же теги

Теги EXIF в основном одинаковы во всех форматах. Различается контейнер, в который теги упакованы.

  • JPEG / JPG: сегмент маркера APP1, описанный выше.
  • TIFF: хранит EXIF нативно. Файл TIFF является структурой из IFD, поэтому EXIF не прикручен сбоку, а является частью базового формата. EXIF в JPEG это заимствованная копия этой раскладки TIFF.
  • HEIC: формат по умолчанию для iPhone с iOS 11. Его контейнер HEIF построен из вложенных "боксов", и теги EXIF находятся в боксе метаданных элемента, а не в маркере в стиле JPEG. Те же теги, другая полка.
  • PNG: может нести EXIF в специальном chunk'е eXIf. Более простые инструменты иногда используют вместо этого текстовые chunk'и tEXt или iTXt. Многие PNG, экспортированные для веба, не несут ни одного.
  • WebP: хранит EXIF в chunk'е EXIF внутри своего контейнера RIFF.

Справочник тегов подробно охватывает особенности редактирования для каждого формата.

Почему "встроенный" важно: метаданные путешествуют с файлом

Поскольку EXIF находится внутри файла, он следует за фотографией повсюду, куда идёт файл. Скопируйте JPEG на USB накопитель, прикрепите к email или поместите в общую папку, и GPS координаты и время съёмки последуют за ним. Именно поэтому метаданные так полезны для доказательств и так рискованны для конфиденциальности: и доказательство, и утечка запечены внутри.

Это также объясняет, почему удаление EXIF не однострочное удаление. Теги вплетены в структуру заголовка файла, поэтому их стирание означает перезапись файла без этой области. Наш инструмент EXIF Remover делает это в вашем браузере.

Что происходит, когда вы редактируете, делаете скриншот или загружаете

Поскольку EXIF это часть файла, то, что выживет, зависит от того, перекодируется ли файл заново:

  • Копирование, перемещение, переименование: байты не меняются, поэтому EXIF сохраняется.
  • Обрезка, поворот, лёгкое редактирование: большинство редакторов сохраняют блок и только обновляют теги размеров и ориентации. Некоторые переписывают его. Проверьте потом просмотрщиком.
  • Скриншот: скриншот это совершенно новое изображение с собственным минимальным EXIF и без данных камеры или GPS оригинала. По сути это очистка метаданных.
  • Загрузка на социальные платформы: Instagram, Facebook, X и WhatsApp удаляют EXIF при загрузке через перекодирование. Инструменты для обмена файлами, такие как email, Dropbox и AirDrop, сохраняют его.

Для более широкой картины того, что записывает EXIF и почему люди его проверяют, смотрите что такое EXIF данные.

Частые вопросы

Хранится ли EXIF в отдельном файле рядом с фотографией? Нет, он встроен внутрь самого файла изображения. (Некоторые профессиональные RAW рабочие процессы используют sidecar файлы .xmp, но стандартный EXIF в JPEG, HEIC, PNG или TIFF находится внутри изображения.)

В чём разница между блоком APP1 и IFD? APP1 это слот JPEG, который содержит EXIF. IFD (IFD0, под-IFD Exif, GPS IFD) это дерево директорий внутри этого слота.

Итог

EXIF не хранится в скрытой базе данных приложения или в sidecar файле. Он встроен в изображение: в JPEG это означает сегмент маркера APP1 ближе к началу, структурированный как дерево TIFF/IFD (IFD0, под-IFD Exif, GPS IFD). HEIC, PNG, WebP и TIFF хранят те же теги в собственных контейнерах. Поскольку он запечён внутри, метаданные путешествуют с каждой копией.

Чтобы увидеть, где находятся метаданные вашей фотографии: просмотрщик EXIF. Чтобы стереть их перед публикацией: инструмент EXIF Remover. Для значения каждого тега: справочник тегов EXIF. Всё в вашем браузере, ничего никуда не загружается.

Попробуйте инструменты

Поставьте штамп на фотографию прямо в браузере, или установите iOS приложение, чтобы снимать вживую с GPS и атомными часами.

Download on theApp Store
Открыть веб-инструмент →Просмотрщик EXIF →