← Фотопосібники

Де зберігаються дані EXIF у фотографії? (JPEG, PNG, HEIC)

Де насправді живе EXIF усередині файлу фотографії? Заголовок APP1, дерево IFD, зміщення байтів і те, як JPEG, HEIC, PNG, TIFF та WebP кожен його зберігають.

Коротка відповідь: EXIF зберігається всередині самого файлу зображення, а не в окремому супровідному файлі. У 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, необов'язкові заголовки (APP2 ICC-профіль, APP13 IPTC, 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-накопичувач, прикріпіть до електронного листа або киньте в спільну папку, і координати GPS та час зйомки підуть разом. Саме тому метадані такі корисні для доказів і такі ризиковані для конфіденційності: і доказ, і витік запечені всередині.

Це також пояснює, чому видалення EXIF не є видаленням в один рядок. Теги вплетені в структуру заголовка файлу, тож їх стирання означає переписування файлу без цієї ділянки. Наш інструмент EXIF Remover робить це у вашому браузері.

Що відбувається, коли ви редагуєте, робите знімок екрана чи завантажуєте

Оскільки EXIF є частиною файлу, те, що виживає, залежить від того, чи перекодовується файл:

  • Копіювання, переміщення, перейменування: байти не змінюються, тож EXIF зберігається.
  • Обрізання, поворот, легкі редагування: більшість редакторів зберігають блок і лише оновлюють теги розмірів та орієнтації. Деякі переписують його; перевірте після цього за допомогою переглядача.
  • Знімок екрана: знімок екрана це абсолютно нове зображення з власним мінімальним EXIF і без жодних даних про камеру чи GPS оригіналу. Це фактично очищення метаданих.
  • Завантаження на соціальні платформи: Instagram, Facebook, X і WhatsApp видаляють EXIF під час завантаження шляхом перекодування. Інструменти для обміну файлами, як-от електронна пошта, Dropbox та AirDrop, зберігають його.

Щоб побачити загальнішу картину того, що записує EXIF і чому люди його перевіряють, дивіться що таке дані EXIF.

Поширені запитання

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

У чому різниця між блоком APP1 та IFD? APP1 це слот JPEG, що тримає EXIF. IFD (IFD0, під-IFD Exif, GPS IFD) це дерево директорій усередині цього слоту.

Підсумок

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

Щоб побачити, де живуть метадані вашої фотографії: переглядач EXIF. Щоб видалити їх перед поширенням: інструмент EXIF Remover. Щоб дізнатися значення кожного тега: довідник тегів EXIF. Усе у вашому браузері, нічого не завантажується.

Спробуйте інструменти

Поставте штамп на фотографію прямо в браузері або встановіть iOS застосунок, щоб знімати наживо з GPS та атомним годинником.

Download on theApp Store
Відкрити вебінструмент →Переглядач EXIF →