所用示例图片(截图所得):
对应数据:
1、文件头内容
字段1:图像信息字段长度(1字节)
这个字段规定了包含在字段6中的字节数,取值范围0-255,若它的值为0,则表示在这个文件中没有图像信息字段。
字段2:颜色表类型(1字节)
0 表示没有颜色表(color map),1 表示颜色表存在。
字段3:图像类型(1字节)
数值为0:没有图像数据
数值为1:未压缩,颜色表映射图像
数值为2:未压缩,真彩图像
数值为3:未压缩,黑白图像
数值为9:行程编码,颜色表映射图像
数值为10:行程编码,真彩图像
数值为11:行程编码,黑白图像
字段4:颜色表规约(5字节)
前两个字节表示装载颜色表的首地址,中间两个字节的数值表示颜色表表项的数量,最后一个字节的数值表示每个表项占用的位数。
如果字段2为0,则该五个字节均被设为0。
字段5:图像规约(10字节)
1、2字节:图像左下角的水平坐标
3、4字节:图像左下角的垂直坐标
5、6字节:图像宽度
7、8字节:图像高度
9字节:像素深度(每个像素占用的位数)
10字节:图像描述符,0~3位规定了每个像素属性位的数量;4、5位用于表示像素数据从文件发送到屏幕的顺序,位4表示从左到右,位5表示从上到下。
字段6:图像信息字段(可变长)
存储图像的身份信息,长度由字段1决定。
字段7:颜色表数据(可变长)
存储颜色表的信息,长度与位数由字段4决定。规定每个颜色表的RGB采用连续的位存储,每个颜色的位长为MIN(颜色表表项大小字段值/3,8)。
字段8:图像数据(可变长)
包含宽度乘高度个像素。用伪彩色表示,则是一个颜色图的一个索引号;用真彩图表示,则是属性、红、绿、蓝顺序的数据;用调配色表示,则是独立的颜色表索引。
字段9:开发者数据(可变长)
开发者写的信息。长度与位置由字段11确定。
字段10:拓展区域(可变长)
开发者写的额外信息。长度与位置由字段11确定。
字段11:TGA文件注脚(最后26字节)
0~3字节:拓展区域偏移量
4~7字节:开发者区域偏移量
8~23字节:签名
24字节:ASCII码”.”
25字节:0
示例分析:
字段1: 00(无图像信息字段)
字段2: 00(无颜色表)
字段3: 02(未压缩,真彩图像)
字段4: 00 00 00 00 00(颜色表为0)
字段5: 00 00 00 00 1F 00 1F 00 18 00(左下角坐标为(0,0),宽31像素,高31像素,每像素占18位,从左到右,从上到下)
无字段6、字段7。
31*31组像素数据,每组三个字节为R、G、B。
文件注脚