TGA
Truevision TGA (TGA) — растровий графічний формат. Початково був розробкою компанії Truevision Inc для графічних адаптерів власного виробництва ще в 1984 році, але надалі набув популярности та був використаний у різних платформах, особливо в галузі обробки відео та анімації. Зазвичай файли цього формату мають розширення .tga у системах DOS-типу, або .tpic на комп'ютерах Macintosh. Формат підтримує глибину кольору 1—32 біти на піксель. Є також підтримка альфа-каналів, стискання RLE. Огляд структури файлуФайл зображення TGA складається з п'яти зон, кожна з яких містить одне або більше полів фіксованої або змінної довжини:
Останні три зони додано в специфікацію формату у вересні 1989 р. З цієї причини файли, створені за допомогою ПЗ, написаного до цієї дати, можуть не містити цих зон. Щоб визначити, чи належить файл до оригінальної версії або до нової, слід переглянути останні 26 байт файлу. Для нової версії ці байти міститимуть підвал файлу, байти 8-23 якого містять набір ASCII символів «TRUEVISION-XFILE». Наявність цього рядка означає, що файл може містити зони (3) і (4). Сам підвал має наступну будову(байт — призначення):
Докладніший опис наприкінці статті. Заголовок файлуДовжина ідентифікатора (1 байт)Вказує кількість байт, що містяться в полі Ідентифікатора. Максимальна кількість символів — 255. Нульове значення вказує, що файл не містить поле Ідентифікатор. Тип мапи кольорів (1 байт)Вказує тип мапи кольорів, включеної у файл. На 1991 рік визначено два значення — 0 (файл не містить карти кольорів) і 1 (файл містить мапу кольорів). Перші 128 значень цього поля зарезервовано для використання Truevision, останні можуть бути використані розробниками ПЗ. True-Color зображення зазвичай не використовують мапу кольорів, але деякі додатки зберігають інформацію про палітру або інші дані в цьому полі. Рекомендується перевіряти значення поля тип зображення (описано в наступному пункті), щоб переконатися що файл може використовувати ці дані. Інакше це поле можна ігнорувати. При записі або збереженні файлу в цілях сумісності потрібно заповнювати це поле нульовими значеннями. У новому форматі файлу для збереження даних розробника існує окрема зона. Тип Зображення (1 байт)TGA файл може бути використаний для збереження зображень з різною глибиною кольору. Визначено сім типів зображень:
Перші 128 значень зарезервовано для використання Truevision, останні можуть бути використані розробниками. Опис мапи кольорів (5 байт)Це поле і його пункти описують мапу кольорів (якщо вона використовується). Якщо поле Color Map Type (описано вище) містить нуль, ці п'ять байт також повинні містити нулі.
Вказує на початковий елемент палітри.
Вказує кількість елементів палітри.
Зазвичай використовуються значення 15, 16, 24 або 32. Опис зображення (10 байт)Це поле описує розміри, положення на екрані і глибину пікселя зображення.
Визначає абсолютну координату лівого нижнього кута зображення по горизонталі.
Визначає абсолютну координату лівого нижнього кута зображення по вертикалі.
Ширина зображення в пікселях.
Висота зображення в пікселях.
Визначає кількість біт на піксель.
Біти 3-0 цього поля визначають кількість атрибутивних бітів на піксель. Біти 5 і 4 визначають порядок передачі піксельних даних з файлу на екран. Біт 4 встановлюється для порядку «зліва направо», біт 5 — для порядку «зверху вниз». Біти 7 і 6 в цілях сумісності мають бути встановлені в 0. Зображення/мапа кольорівІдентифікатор (змінна довжина)Це поле є ідентифікатором файлу і може мати довжину від 0 до 255 байт. Дані мапи кольору (змінна довжина)Якщо Тип мапи Кольорів (описано више) містить нуль, це поле буде відсутнє. Поля Розмір елементу мапи кольорів і Довжина мапи кольорів дозволяють визначити розмір цього поля. Кожен елемент мапи кольорів займає ціле число байт; кожен колірний канал займає MIN (Розмір елементу мапи кольорів/3 , 8) біт, тобто для розміру елементу в 24 кожен з трьох каналів кольору займе 8 байт, так само, як і для елементів розміром 32 біта. Дані зображення (змінна довжина)Це поле містить дані про ширину та висоту пікселів. Кожен піксель вказує дані зображення в одному з наступних форматів: самостійний індекс елементу мапи кольорів, окремі значення для кожного каналу кольору або окремі індекси інтенсивності для формату Direct Color. Зона розробника (змінна довжина)Ця зона може мати будь-який розмір і містити будь-який тип інформації на розсуд розробника ПЗ, хоча рекомендується використовувати її виключно для зберігання специфічної інформації, не призначеної для іншого ПЗ і не описаної в специфікації формату. Оскільки файл може містити більше ніж одну зону розробника, існує список зон, «мапа» полів, включених в ці зони. У байтах 4-7 підвалу файлу міститься зсув від початку файлу на початок списку зон розробника. Якщо ці байти містять нульове значення, списку зон і самих зон у файлі немає. Список зон розробника
Вказує кількість тегів, що містяться в списку. Решта частини списку після цього значення містить послідовності тег-зсув-розмір.
Кожен тег може містити значення від 0-65535. Значення 0-32767 можуть бути використані розробниками, останні зарезервовані для використання Truevision.
Містить значення, вказуюче зсув від початку файлу на початок поля, на яке посилається тег.
Вказує розмір поля, на яке посилається тег. Зона розширенняЗсув до Зони розширення зберігається в підвалі файлу. Якщо зсув дорівнює нулю — файл не містить зони розширення. Розмір зони розширення (2 байти)Містить довжину зони в байтах. Для версії 2.0 формату, це значення має бути рівним 495. Ім'я автора (41 байт)Місце для ASCII рядка завдовжки до 40 символів і одного нульового байта. Якщо поле не використовується, воно заповнюється нулями або пропусками. Останній символ завжди має дорівнювати нулю. Коментар автора (324 байти)Місце для чотирьох рядків, кожна з яких може вміщати нульовий байт і до 80 значущих символів. Невикористане місце заповнюється нулями або пропусками, 81-й байт кожного рядка має дорівнювати нулю. Дата/Час (12 байт)Це поле містить послідовність з шести 2-х байтових значень для дати і часу збереження зображення (місяць-день-рік-час-хвилина-секунда). Якщо це поле не використовується, воно заповнюється нулями. Ім'я/ID завдання (41 байт)Місце для 40 ASCII символів і одного нульового байта. Job time (6 байт)Аналогічно полю дата/час, місце для зберігання трьох значень (час-хвилина-секунда). ID ПЗ (41 байт)Місце для рядка-ідентифікатора ПЗ, за допомогою якого був створений файл. Версія ПЗ (3 байти)Поле містить дві складові частини — 2-х байтне число і ASCII символ. Місце для збереження версії ПЗ, за допомогою якого був створений файл. Ключовий колір (4 байти)4-х байтне значення, що визначає ключовий колір альфа каналу у форматі ARGB. Якщо зображення не містить альфа-каналу, значення першого байта встановлюється в нуль. Ключовий колір визначає колір фону або «прозорий колір». Якщо поле не використовується, воно заповнюється нулями. Співвідношення сторін пікселя (aspect ratio) (4 байти)Містить два 2-х байтних значення, визначальну ширину і висоту пікселя відповідно. Однакові ненульові значення визначають квадратний піксель, нуль в другому значенні означає, що співвідношення не вказане. Гамма (4 байти)Містить два 2-х байтних значення, використовуваних як чисельник і знаменник при обчисленні дробового значення гамми. Результат ділення повинен знаходитися в діапазоні від 0 до 10.0 і мати тільки один знак в дробовій частині. Коли це поле не використовується, обидва значення мають дорівнювати один одному (щоб отримати 1.0 після ділення), або друге значення має дорівнювати нулю. Зсув Корекція Кольору (4 байти)Містить зсув в байтах від початку файлу до таблиці корекції. Таблиця може бути поміщена в будь-якому місці після поля Даних Зображення і перед Підвалом файлу. Якщо зображення не вимагає корекції, це значення дорівнює нулю. Зсув Postage Stamp (4 байти)Містить зсув до зменшеної копії зображення, що міститься у файлі. Зображення записується між Таблицею Скан Ліній (описано нижче) і Підвалом файлу. Зсув Скан Ліній (4 байти)Зсув до початку таблиці Скан Ліній. Тип Аттрибутів (1 байт)Це значення визначає тип даних альфа-каналу, збережених із зображенням.
Таблиця Скан ЛінійТаблиця повинна містити набір зсувів в байтах від початку файлу до початків скан ліній, у відповідному порядку (наприклад зверху вниз/знизу вгору). Зображення Postage StampЗменшена копія зображення, що міститься у файлі. Зберігається в тому ж форматі, що і повнорозмірне, але без застосування методів стискання. Перший байт містить ширину копії в пікселях, другої, — висоту. Truevision не рекомендовано використовувати зображення розміром більш ніж 64х64 пікселя. Таблиця Корекції Кольору (2 КБ)Таблиця містить 256х4 2-х байтних значень, кожна послідовність з чотирьох таких значень відповідає каналам ARGB. Підвал
Передостанній символ сигнатури повинен бути символом «.»(period), інакше файл не буде розпізнаний як правильний файл TGA. Розробник не зобов'язаний читати, записувати або використовувати зони розширення або розробника, але, навіть коли вони не використовуються, рекомендується включати у файл Підвал і вказувати як зсуви до невживаних зон нулі.
|