TGA

Матеріал з Вікіпедії — вільної енциклопедії.

(Перенаправлено з Truevision TGA)
Перейти до: навігація, пошук

Truevision TGA (TGA) — растровий графічний формат. Спочатку був створений компанією Truevision Inc. для графічних адаптерів власного виробництва ще в 1984, але надалі став популярний на різних платформах, особливо в області обробки відео та анімації.

Зазвичай файли цього формату мають розширення .tga у системах, наступних традиціям DOS, або .tpic на комп'ютерах Macintosh. Формат підтримує глибина кольору 1—32 біти на піксель. Є також підтримка альфа-каналів, стискування в формат RLE.

Зміст

[ред.] Огляд структури файлу

Файл зображення TGA складається з п'яти зон, кожна з яких містить одне або більше за поля фіксованої, або змінної довжини:

  • (1) Заголовок файлу
  • (2) Зображення/мапа кольорів
  • (3) Зона розробника
  • (4) Зона розширення
  • (5) Підвал

Останні три зони були додані в специфікацію формату у вересні 1989 р. З цієї причини файли, створені при допомозі ПЗ, написаного до цієї дати, можуть не містити цих зон.

Щоб визначити, чи відноситься файл до оригінальної версії або до нової, слід вважати останні 26 байт файлу. Для нової версії ці байти міститимуть підвал файлу, байти 8-23 якого містять набір ASCII символів «TRUEVISION-XFILE». Наявність цього рядка означає, що файл може містити зони (3) і (4).

Сам підвал має наступну будову(байт — призначення):

  • 0-3 — Зсув зони розширення
  • 4-7 — Зсув списку зон розробника
  • 8-23 — Підпис файлу нового формату
  • 24 — ASCII символ '.'
  • 25 — Нульовий байт

Докладніший опис в кінці статті.

[ред.] Заголовок файлу

[ред.] Довжина ідентифікатора (1 байт)

Вказує кількість байт, що містяться в полі Ідентифікатор. Максимальна кількість символів — 255. Нульове значення вказує, що файл не містить поле Ідентифікатор.

[ред.] Тип мапи кольорів (1 байт)

Вказує тип мапу кольорів, включеної у файл. На даний момент(опис від січня 1991г) визначено два значення — 0(файл не містить карти кольорів) і 1(файл містить мапу кольорів). Перші 128 значень цього поля зарезервовано для використання Truevision, останні можуть бути використані розробниками ПЗ.

True-Color зображення зазвичай не використовують мапу кольорів, але деякі застосування зберігають інформацію про палітру або інші дані в цьому полі. Рекомендується перевіряти значення поля тип зображення(описано в наступному пункті), щоб переконатися що файл може використовувати ці дані. Інакше це поле можна ігнорувати.

При записі або збереженні файлу в цілях сумісності потрібно заповнювати це поле нульовими значеннями. У новому форматі файлу для збереження даних розробника існує окрема зона.

[ред.] Тип Зображення (1 байт)

TGA файл може бути використаний для збереження зображень з різною глибиною кольору. Визначено сім типів зображень(значення — опис — використовується мапу кольорів — encoding(?)):

  • 0 — Немає зображення — ні — ні
  • 1 — Зображення з палітрою — так — ні
  • 2 — Truecolor зображення — ні — ні
  • 3 — Монохромне зображення — ні — ні
  • 9 — Зображення з палітрою — так — так
  • 10 — Truecolor зображення — ні — так
  • 11 — Монохромне зображення — ні — так

Перші 128 значень зарезервовано для використання Truevision, останні можуть бути використані розробниками.

[ред.] Опис мапи кольорів (5 байт)

Це поле і його пункти описують мапу кольорів (якщо вона використовується). Якщо поле Color Map Type(описано вище) містить нуль, ці п'ять байт також повинні містити нулі.

  • індекс першого елемента — 2 байти

Вказує на початковий елемент палітри.

  • довжина мапи кольорів — 2 байти

Вказує кількість елементів палітри.

  • розмір елементу мапи кольорів — 1 байт

Зазвичай використовуються значення 15, 16, 24 або 32.

[ред.] Опис зображення (10 байт)

Це поле описує розміри, положення на екрані і глибині пікселя зображення.

  • Положення зображення по осі X — 2 байта

Визначає абсолютну координату лівого нижнього кута зображення по горизонталі.

  • Положення зображення по осі Y — 2 байта

Визначає абсолютну координату лівого нижнього кута зображення по вертикалі.

  • Ширина зображення — 2 байти

Ширина изображения в пикселях.

  • Высота изображения — 2 байти

Висота зображення в пікселях.

  • Глибина кольору — 1 байт

Визначає кількість біт на піксель.

  • Описувач зображення — 1 байт

Біти 3-0 цього поля визначають кількість атрибутивних бітів на піксель. Біти 5 і 4 визначають порядок передачі піксельних даних з файлу на екран. Біт 4 встановлюється для порядку «зліва направо», біт 5 — для порядку «зверху вниз». Біти 7 і 6 в цілях сумісності мають бути встановлені в 0.

[ред.] Зображення/мапа кольорів

[ред.] Ідентифікатор (змінна довжина)

Це поле є ідентифікатором файлу і може мати довжину від 0 до 255 байт.

[ред.] Дані мапи кольору (змінна довжина)

Якщо Тип мапи Кольорів(описано више) містить нуль, це поле буде відсутнє. Поля Розмір елементу мапи кольорів і Довжина мапи кольорів дозволяють визначити розмір цього поля. Кожен елемент мапи кольорів займає ціле число байт; кожен колірний канал займає MIN(Розмір елементу мапи кольорів/3 , 8) біт, тобто для розміру елементу в 24 кожен з трьох каналів кольору займе 8 байт, так само, як і для елементів розміром 32 бита.

[ред.] Дані зображення (змінна довжина)

Це поле містить (ширина*висота) пікселів. Кожен піксель вказує дані зображення в одному з наступних форматів: самостійний індекс елементу мапи кольорів, окремі значення для кожного каналу кольору або окремі індекси інтенсивності для формату Direct Color.

[ред.] Зона розробника (змінна довжина)

Ця зона може мати будь-який розмір і містити будь-який тип інформації на розсуд розробника ПЗ, хоча рекомендується використовувати її виключно для зберігання специфічної інформації, не призначеної для останнього ПЗ і не описаною в специфікації формату. Оскільки файл може містити більш за одну зону розробника, існує список зон, «мапу» полів, включених в ці зони, що містить. У байтах 4-7 підвалу файлу міститься зсув від початку файлу на початок списку зон розробника. Якщо ці байти містять нульове значення, списку зон і самих зон у файлі немає.

[ред.] Список зон розробника

  • Кількість тегів (2 байти)

Вказує кількість тегів, що містяться в списку. Решта частини списку після цього значення містить послідовності тэг-зсув-розмір.

  • Тэг (2 байти)

Кожен тег може містити значення від 0-65535. Значення 0-32767 можуть бути використані розробниками, останні зарезервовані для використання Truevision.

  • Зсув (4 байта)

Містить значення, вказуюче зсув від початку файлу на початок поля, на яке посилається тег.

  • Розмір (4 байти)

Вказує розмір поля, на яке посилається тег.

[ред.] Зона розширення

Зсув до Зони розширення зберігається в підвалі файлу. Якщо зсув дорівнює нулю — файл не містить зони розширення.

[ред.] Розмір зони розширення (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 байт)

Це значення визначає тип даних альфа-каналу, збережених із зображенням.

  • 0 — немає альфа-каналу
  • 1 — невизначені дані в альфа-каналі, можуть бути проігноровані
  • 2 — невизначені дані в альфа-каналі, мають бути збережені
  • 3 — повноцінний альфа-канал в наявності
  • 4 — передпомножений альфа-канал(значення кольорів вже помножені на значення в альфа-каналі)

Pre-multiplied Alpha Example: Suppose the Alpha channel data is being used to specify the opacity of each pixel (for use when the image is overlayed on another image), where 0 indicates that the pixel is completely transparent and a value of 1 indicates that the pixel is completely opaque (assume all component values have been normalized). A quadruple (a, r, g, b) of (0.5, 1, 0, 0) would indicate that the pixel is pure red with a transparency of one-half. For numerous reasons (including image compositing) is is better to pre-multiply the individual color components with the value in the Alpha channel. A pre-multiplication of the above would produce a quadruple (0.5, 0.5, 0, 0). A value of 3 in the Attributes Type Field (field 23) would indicate that the color components of the pixel have already been scaled by the value in the Alpha channel. For more information concerning pre-multiplied values, refer to the 1984 SIGGRAPH Conference Proceedings.

[ред.] Таблиця Скан Ліній

Таблиця повинна містити набір зсувів в байтах від початку файлу до початків скан ліній, у відповідному порядку (наприклад зверху вниз/знизу вгору).

[ред.] Зображення Postage Stamp

Зменшена копія зображення, що міститься у файлі. Зберігається в тому ж форматі, що і повнорозмірне, але без застосування методів стискування. Перший байт містить ширину копії в пікселях, другої, — висоту. Truevision не рекомендовано використовувати зображення розміром більш ніж 64Х64 пікселя.

[ред.] Таблиця Корекції Кольору (2 КБ)

Таблиця містить 256Х4 2-х байтних значень, кожна послідовність з чотирьох таких значень відповідає каналам ARGB.

[ред.] Підвал

  • Зсув в байтах від початку файлу до зони розширення (4 байти).
  • Зсув до списку зон розробника (4 байти).
  • Сигнатура нової версії файлу (ASCII рядок «TRUEVISION-XFILE.\0»).

Передостанній символ сигнатури повинен бути символом «.»(period), інакше файл не буде розпізнаний як правильний файл TGA.

Розробник не зобов'язаний читати, записувати або використовувати зони розширення або розробника, але, навіть коли вони не використовуються, рекомендується включати у файл Підвал і указувати як зсуви до невживаних зон нулі.



Комп'ютер Це незавершена стаття про комп'ютери.
Ви можете допомогти проекту, виправивши або дописавши її.
Особисті інструменти