Орієнтація зображення - це напрямок, у якому видно зображення: вертикально, догори дригом, повернутим набік або віддзеркаленим. У метаданих файлу поле Orientation вказує програмі, як потрібно повернути збережене зображення, щоб воно відображалося вертикально.
У фотографії орієнтація зазвичай означає книжкову (portrait) або альбомну (landscape). Книжкове зображення вище, ніж ширше, а альбомне - ширше, ніж вище. Коли ви робите фото, камера або телефон зберігає спосіб, у який ви його тримали, як дані орієнтації у файлі.
Які файли містять його
Тег Orientation є частиною стандарту Exif, який запозичує його з формату TIFF. Його ID тега - 0x0112, або 274 у десятковій системі. Стандарт позначає його як рекомендований тег для основного зображення, і ви знайдете його в таких файлах:
- JPG і TIFF-фотографії з камер і телефонів
- HEIC, PNG та WebP-зображення, які всі можуть містити блок даних Exif
Файл HEIC також може зберігати поворот і віддзеркалення як окремі властивості контейнера з назвами irot і imir. Деякі камери додають також приватний тег. Деякі моделі Canon записують CameraOrientation, який у звіті про метадані відображається як Horizontal (normal), Rotate 90 CW або Rotate 270 CW.
Як виглядають значення
Усередині файлу значенням є число від 1 до 8. Кожне число визначає, де на екрані мають розташовуватися перший рядок і перший стовпець збережених пікселів. У звіті про метадані зазвичай показано значення словами, де CW означає за годинниковою стрілкою:
1- цеHorizontal (normal): зображення збережене вертикально, тому нічого не змінюється3- цеRotate 180: зображення збережене догори дригом6- цеRotate 90 CW: програма повертає зображення на 90 градусів за годинниковою стрілкою перед показом8- цеRotate 270 CW: програма повертає зображення на 270 градусів за годинниковою стрілкою, тобто на 90 градусів проти годинникової стрілки2,4,5і7додають віддзеркалення, наприкладMirror horizontal
Стандарт позначає всі інші числа як зарезервовані. Тому значення поза діапазоном від 1 до 8 не має визначеного змісту.
Як відео зберігають поворот
Відеофайли працюють з орієнтацією по-іншому. Файл MP4 або MOV зберігає матрицю відображення в заголовку своєї відеодоріжки. Ця матриця вказує програвачу, як потрібно повернути або віддзеркалити кадри перед відтворенням.
Програми, що читають метадані, перетворюють цю матрицю на один кут у градусах. ExifTool рахує кут за годинниковою стрілкою, а FFmpeg - проти годинникової в діапазоні від -180 до 180. Тому одне й те саме відео може показувати 90 в одному звіті та -90 в іншому.
Чому це важливо для вашого файлу
Значення Orientation не переміщує жодних пікселів. Пікселі залишаються в тому порядку, в якому їх зберегла камера, а тег лише вказує засобу перегляду, як їх показати. Веббраузери застосовують цей тег за замовчуванням, але програма, яка його ігнорує, покаже книжкове фото лежачим набік.
Через це також може здаватися, що ширина й висота помінялися місцями. Image Width і Image Height описують збережені пікселі до будь-якого повороту. Тому книжкове фото з Rotate 90 CW може повідомляти про ширину, що більша за висоту.
Редагування може спричинити ще одну проблему. Якщо програма повертає пікселі, але залишає старий тег, зображення буде повернуто двічі. Стандарт Exif рекомендує, щоб після повороту зображення програма редагування повертала значення Orientation до 1.
Сторінки PDF використовують власне поле. Page Rotation повертає всю сторінку за годинниковою стрілкою з кроком у 90 градусів під час показу або друку.