Що таке файл TIFF?
TIFF або TIF, Tagged Image File Format, представляє растрові зображення, які призначені для використання на різних пристроях, які відповідають цьому стандарту формату файлів. Він здатний описувати дані дворівневого зображення, відтінків сірого, кольору палітри та повнокольорового зображення в кількох колірних просторах. Він підтримує схеми стиснення як із втратами, так і без втрат, щоб вибрати між простором і часом для програм, які використовують формат. Формат не залежить від машини та не залежить від процесора, операційної системи чи файлових систем.
Коротка історія формату файлу TIFF
Формат файлу TIFF спочатку був створений компанією Aldus Corporation восени 1986 року після серії зустрічей з різними виробниками сканерів і розробниками програмного забезпечення. Основним призначенням формату файлу TIFF було надання спільного формату файлу відсканованого зображення для всіх постачальників настільних сканерів. Починаючи з підтримки лише двійкового формату зображення, формат з часом розвинувся до підтримки зображень у градаціях сірого та кольорових зображень. Початкова версія специфікацій формату файлу TIFF може бути позначена як Reivision 3.0, оскільки було два попередні випуски. У 1988 році було опубліковано основну версію 5.0, яка додала підтримку кольорових зображень палітри та стиснення LZW. Після цього в 1992 році була опублікована версія 6.0 форматів файлів TIFF. У 1994 році Adobe Systems придбала Aldus, і тепер специфікації доступні та обслуговуються Adobe Systems.
Специфікації формату файлу TIFF
Формат файлу TIFF є розширюваним і зазнав кількох змін, що дозволяє включати необмежену кількість особистої або спеціальної інформації. Файл TIFF починається з 8-байтового заголовка, де байти мають номери від 0 до N. Максимальний можливий файл TIFF має довжину 2**32 байти. Файл починається з 8-байтового заголовка файлу зображення, який безпосередньо вказує на файл зображення (IFD). IFD містить інформацію про зображення, а також покажчики на фактичні дані зображення.
Заголовок файлу TIFF
8-байтовий заголовок файлу TIFF містить таку інформацію:
Байти 0-1: порядок байтів у файлі. Допустимі значення: «II» (4949.H) «MM» (4D4D.H).
У форматі «II» порядок байтів завжди встановлюється від молодшого байта до старшого байта як для 16-бітних, так і для 32-бітних цілих чисел. Це називається порядком байтів у порядку байтів. У форматі «MM» порядок байтів завжди встановлюється від старшого до молодшого як для 16-бітних, так і для 32-бітних цілих чисел. Це називається порядком байтів у порядку байтів.
Байти 2-3: довільне, але ретельно вибране число (42), яке додатково ідентифікує файл як файл TIFF. Порядок байтів залежить від значення байтів 0-1.
Байти 4-7: Зсув (у байтах) першого IFD. Каталог може бути в будь-якому місці у файлі після заголовка, але повинен починатися на межі слова. Зокрема, каталог файлів зображень може слідувати за даними зображень, які він описує. Читачі повинні слідувати вказівникам, куди б вони не вели. Термін зміщення байтів завжди використовується в цьому документі для позначення розташування відносно початку файлу TIFF. Перший байт файлу має зміщення 0.
Каталог файлів зображень
IFD містить інформацію про зображення, а також покажчики на фактичні дані зображення. Він складається з 2-байтового підрахунку кількості записів каталогу (тобто кількості полів), за якими слідує послідовність 12-байтових записів полів. , а потім 4-байтовий зсув наступного IFD (або 0, якщо його немає). У файлі TIFF має бути принаймні 1 IFD, і кожен IFD має мати принаймні один запис.
Запис IFD
Кожен 12-байтовий запис IFD має такий формат.
Байт | Опис |
---|---|
0-1 | Тег, що ідентифікує поле |
2-3 | Тип поля |
4-7 | Граф зазначеного типу |
8-11 | Зміщення значення, зміщення файлу (у байтах) значення для поля. Очікується, що значення починається на межі слова; Таким чином, відповідне зсув значення буде парним числом. Це зміщення файлу може вказувати будь-де у файлі, навіть після даних зображення |
Поле TIFF - це логічна сутність, що складається з тегу TIFF і його значення. Ця логічна концепція реалізована як запис IFD плюс фактичне значення, якщо воно не вписується в частину значення/зміщення, останні 4 байти запису IFD. Терміни поле TIFF і запис IFD взаємозамінні в більшості контекстів.
Базовий TIFF
Базовий TIFF є ядром TIFF, основним елементом, який усі основні розробники TIFF повинні підтримувати у своїх продуктах. Відповідність формату TIFF залежить від дотримання базових вимог TIFF. Ці вимоги добре задокументовані в документі специфікацій 6.0.
Кілька зображень у файлі
У файлі TIFF може бути більше одного IFD. Кожен IFD визначає підфайл. Одним із можливих способів використання підфайлів є опис пов’язаних зображень, таких як сторінки факсимільної передачі. Базовий пристрій для читання TIFF не потрібен для читання будь-яких IFD, крім першого.
Типи зображень
Базове зображення TIFF має такі типи:
Дворівневе: Дворівневе зображення містить два кольори — чорний і білий. TIFF дозволяє програмі записувати дворівневі дані у форматі «білий — нуль» або «чорний — нуль». Поле, у якому записується ця інформація, називається PhotometricInterpretation.
- Повнокольоровий RGB
Інформація фотометричної інтерпретації для дворівневих зображень така:
Тег = 262 (106.H) Тип = КОРОТКИЙ Цінності
Значення | Опис |
---|---|
0 | Для дворівневих зображень і зображень у градаціях сірого: 0 відображається як білий. Максимальне значення зображено чорним. Це нормальне значення для Compression#2 |
1 | Чорний-Нуль. Для дворівневих зображень і зображень у градаціях сірого: 0 відображається як чорний. Максимальне значення позначено білим кольором. Якщо це значення вказано для Compression#2, зображення має відображатися та друкуватися перевернутим. |
Відтінки сірого: зображення у відтінках сірого є узагальненням дворівневих зображень. Дворівневі зображення можуть зберігати лише дані чорно-білого зображення, але зображення у відтінках сірого також можуть зберігати відтінки сірого. Щоб описати такі зображення, ви повинні додати або змінити наступні поля. Інші обов’язкові поля такі самі, як і для дворівневих зображень. Для зображень у відтінках сірого, стиснення № 1 або 32773 (PackBits). У базовому форматі TIFF зображення у градаціях сірого можна зберігати як нестиснуті дані або стиснути за допомогою алгоритму PackBits.
Інформація BitsPerSample для зображень у градаціях сірого така:
Тег = 258 (102.H) Тип = КОРОТКИЙ
Кількість бітів на компонент. Допустимі значення для базових зображень у градаціях сірого TIFF — 4 і 8, що дозволяє 16 або 256 різних відтінків сірого.
Палітра кольорів: зображення палітри кольорів подібні до зображень у відтінках сірого. Вони все ще мають один компонент на піксель, але значення компонента використовується як індекс у повній таблиці пошуку RGB. Щоб описати такі зображення, вам потрібно додати або змінити наступні поля. Інші обов’язкові поля такі ж, як і для зображень у градаціях сірого. Інформація фотометричної інтерпретації для зображення Palette-Color така:
Фотометрична інтерпретація = 3 (колір палітри). ColorMapTag = 320 (140.H) Тип = КОРОТКИЙ N = 3 * (2 біти на вибірку)
Це поле визначає червоно-зелено-синю карту кольорів (часто звану таблицею пошуку) для зображень палітри кольорів. У зображенні кольорів палітри значення пікселя використовується для індексування в таблиці пошуку RGB. Наприклад, піксель кольорів палітри, що має значення 0, відображатиметься відповідно до 0-го триплету червоного, зеленого та синього. У карті кольорів TIFF усі значення червоного кольору йдуть першими, потім значення зеленого кольору, а потім значення синього кольору. У ColorMap чорний колір представлено 0,0,0, а білий — 65535, 65535, 65535.
Повнокольоровий RGB: у зображенні RGB кожен піксель складається з трьох компонентів: червоного, зеленого та синього. Немає ColorMap. Щоб описати зображення RGB, вам потрібно додати або змінити наступні поля та значення. Інші обов’язкові поля такі самі, як і для зображень із кольоровою палітрою.
BitsPerSample = 8,8,8. Глибина кожного компонента в базовому зображенні TIFF RGB становить 8 біт.
PhotometricInterpretation = 2 (RGB) і немає ColorMap.
Тег = 277 (115.H) Тип = КОРОТКИЙ Кількість компонентів на піксель. Це число дорівнює 3 для зображень RGB, якщо немає додаткових зразків.