一、TGA图像文件格式概述
1. 图像格式
TGA(Targa)格式是计算机上应用最广泛的图象格式。在兼顾了BMP的图象质量的同时又兼顾了JPEG的体积优势。并且还有自身的特点:通道效果、方向性。在CG领域常作为影视动画的序列输出格式,因为兼具体积小和效果清晰的特点。
TGA格式(Tagged Graphics)是由美国Truevision公司为其显示卡开发的一种图像文件格式,文件后缀为“.tga”,已被国际上的图形、图像工业所接受。
2. 结构
TGA的结构比较简单,属于一种图形、图像数据的通用格式,在多媒体领域有很大影响,是计算机生成图像向电视转换的一种首选格式。
TGA图像格式最大的特点是可以做出不规则形状的图形、图像文件,一般图形、图像文件都为正方形,若需要有圆形、棱形甚至是镂空的图像文件时,TGA就可以派上用场了。
3. 压缩
TGA格式支持压缩,使用不失真的压缩算法。
在工业设计领域,使用三维软件制作出来的图像可以利用TGA格式的优势,在图像内部生成一个Alpha(通道),这个功能方便了在平面软件中的工作。
二、TGA格式解析(含实例分析)
名称 | 偏移 | 长度 | 说明 | 实例分析 |
---|---|---|---|---|
图像信息字段长度 | 0 | 1 | 本字段是 1字节无符号整型,指出图像信息字段(见本子表的后面)长度,其取值范围是 0到 255,当它为 0时表示没有图像的信息字段。 | 为0,说明没有图像的信息字段 |
颜色表类型 | 1 | 1 | 0 表示没有颜色表,1表示颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。 | 为0,无颜色表 |
图像类型码 | 2 | 1 | 2:非压缩RGB格式 10:压缩RGB格式 | 2:非压缩RGB格式 |
颜色表首址 | 3 | 2 | 颜色表首的入口索引,整型(低位-高位) | 为0,则忽略该字段 |
颜色表的长度 | 5 | 2 | 颜色表的表项总数,整型(低位-高位) | 为0,则忽略该字段 |
颜色表项位数 | 7 | 1 | 位数(bit),16代表 16位 TGA,24代表 24位 TGA,32代表 32位 TGA | 为0,则忽略该字段 |
图像X 坐标起始位置 | 8 | 2 | 图像左下角X坐标的整型(低位-高位)值 | 0 |
图像Y 坐标起始位置 | 10 | 2 | 图像左下角 Y坐标的整型(低位-高位)值 | 0 |
图像宽度 | 12 | 2 | 以像素为单位,图像宽度的整型(低位-高位) | 16(H)=22(D) |
图像高度 | 14 | 2 | 以像素为单位,图像宽度的整型(低位-高位) | 16(H)=22(D) |
图像每像素存储占用位数 | 16 | 2 | 它的值为16,24或 32等等。决定了该图像是 TGA 16,TGA24,TGA 32等等。 | 18(H)=24(D),该图像是 TGA 24 |
图像描述符字节 | 17 | 1 | bits 3-0 -每像素对应的属性位的位数;对于TGA 16,该值为 0或 1,对于 TGA24,该值为 0,对于 TGA 32,该值为 8。 bit 4 - 保留,必须为 0 bit 5 - 屏幕起始位置标志,0 =原点在左下角,1 =原点在左上角,对于 truevision图像必须为 0。 bits 7-6 -交叉数据存储标志。00 =无交叉,01 =两路奇/偶交叉,10 =四路交叉,11 =保留。 | 0 |
图像信息字段 | 18 | 可变 | 包含一个自由格式的,长度是图像由“图像信息字段”指定。它常常被忽略(即偏移 0处值为 0),注意其最大可以含有 255个字符。如果需要存储更多信息,可以放在图像数据之后。 | / |
颜色表数据 | 可变 | 可变 | 如果颜色表类型为 0,则该域不存在,否则越过该域直接读取图像颜色表规格中描述了每项的字节数,为 2,3,4之一。 | 无颜色表 |
图像数据 | 可变 | 可变 | 非压缩RGB格式:RGB颜色数据,存放顺序为:BBB GGG RRR (AAA) 压缩RGB格式:采用RLE压缩后的RGB颜色数据。 | 非压缩RGB格式 |
开发者自定义区域 | 可变 | 可变 | 包含开发者定义字段列表和开发者字典(用于存储开发者定义字段的值),该区域为开发者扩展该文件格式提供接口,以便存储额外的信息。 | / |
扩展区域 | 可变 | 可变 | 由扩展区域大小、作者姓名、作者注释、日期/时间、工作名称/ID、工作累计耗时、编辑软件的名称、编辑软件的版本、关键颜色、像素宽高比、灰度值、颜色校正表偏移量、缩略图偏移量、扫描线表偏移量、alpha通道类型、扫描线表、缩略图图像数据和颜色校正表组成,为Truevision公司定义的标准扩展功能,以提供更多的图像附加信息。 | / |
文件尾 | 可变 | 可变 | 由扩展区域偏移量、开发者目录偏移量和TGA文件扩展格式签名三部分组成,用于验证TGA文件扩展格式,并可以确定扩展区域和开发者字典的位置。 | / |
三、总结
1. 六种图像类型
-
数据类型1:颜色映射图
字段 2:Color-Map Type(1 Byte)必须为0x01
字段3:Image Type 必须为0x01 -
数据类型2:真彩图
字段2:Color-Map Type(1 Byte)必须为0x00
字段3:Image Type 必须为0x02 -
数据类型3:黑白图(未映射)
字段2:Color-Map Type(1 Byte)必须为0x00
字段3:Image Type 必须为0x03 -
数据类型4:行程编码(RLE),颜色映射图
字段2:Color-Map Type(1 Byte)必须为0x01
字段3:Image Type 必须为0x09 -
数据类型5:行程编码(RLE),真彩图
字段2:Color-Map Type(1 Byte)必须为0x00
字段3:Image Type 必须为0x0A -
数据类型6:行程编码(RLE),黑白图
字段2:Color-Map Type(1 Byte)必须为0x00
字段3:Image Type 必须为0x0B
2. tga应用模式
- 未压缩的颜色表图像:这种类型的格式用于存储基于颜色表的图像(像素值用颜色索引表示),文件头中的颜色表类型(Field2)项的值必须为1,图像类型(Field3)必须为1。
- 未压缩的真彩色图像:这种类型的格式用于存储用(A)RGB值表示的像素数据,文件头中的颜色表类型(Field2)项的值必须为0,图像类型(Field3)必须为2。
- 未压缩的黑白图像:这种类型的格式用于存储灰度值表示的像素数据,文件头中的颜色表类型(Field2)项的值必须为0,图像类型(Field3)必须为3。
- RLE压缩的颜色表图像:这种类型的格式用于存储基于颜色表的图像(像素值用颜色索引表示),存储数据时采用RLE压缩算法,文件头中的颜色表类型(Field2)项的值必须为1,图像类型(Field3)必须为9。
- RLE压缩的真彩色图像:这种类型的格式用于存储用(A)RGB值表示的像素数据,存储数据时采用RLE压缩算法,文件头中的颜色表类型(Field2)项的值必须为0,图像类型(Field3)必须为10。
- RLE压缩的黑白图像:这种类型的格式用于存储灰度值表示的像素数据,存储数据时采用RLE压缩算法,文件头中的颜色表类型(Field2)项的值必须为0,图像类型(Field3)必须为11。