大家好,又见面了,我是你们的朋友全栈君。
Tga常见的格式有非压缩RGB和压缩RGB两种格式,文件的第三个Byte位作为标记:2为非压缩RGB格式,10为压缩RGB格式。这里的类只实现读取非压缩格式的tga文件。
先给出tga文件的文件格式:
名称 |
偏移 |
长度 |
说明 |
||
图像信息字段长度 |
0 |
1 |
本字段是 1 字节无符号整型,指出图像信息字段(见本子表的后面)长度,其取值范围是 0 到 255 ,当它为 0 时表示没有图像的信息字段。 |
||
颜色表类型 |
1 |
1 |
0 表示没有颜色表,1 表示颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。 |
||
图像类型码 |
2 |
1 |
该字段总为 2 ,这也是此类型为格式 2 的原因。 |
||
颜色表规格字段 |
颜色表首址 |
3 |
2 |
颜色表首的入口索引,整型(低位-高位) |
如果颜色表字段为0,则忽略该字段 |
颜色表的长度 |
5 |
2 |
颜色表的表项总数,整型(低位–高位) |
||
颜色表项位数 |
7 |
1 |
位数(bit),16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA |
||
图像规格字段 |
图像 X 坐标起始位置 |
8 |
2 |
图像左下角 X坐标的整型(低位–高位)值 |
|
图像 Y 坐标起始位置 |
10 |
2 |
图像左下角 Y坐标的整型(低位–高位)值 |
||
图像宽度 |
12 |
2 |
以像素为单位,图像宽度的整型(低位–高位) |
||
图像高度 |
14 |
2 |
以像素为单位,图像宽度的整型(低位–高位) |
||
图像每像素存储占用位数 |
16 |
2 |
它的值为16,24 或 32 等等。决定了该图像是 TGA 16,TGA24,TGA 32 等等。 |
||
图像描述符字节 |
17 |
1 |
bits 3-0 – 每像素对应的属性位的位数; 对于TGA 16,该值为 0 或 1,对于 TGA 24,该值为 0,对于 TGA 32,该值为 8。
bit 4 – 保留,必须为 0
bit 5 – 屏幕起始位置标志 0 = 原点在左下角 1 = 原点在左上角 对于 truevision 图像必须为 0
bits 7-6 – 交叉数据存储标志 00 = 无交叉 01 = 两路奇/偶交叉 10 = 四路交叉 11 = 保留 |
||
图像信息字段 |
18 |
可变 |
包含一个自由格式的,长度是图像由“图像信息字段”指定。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以含有 255 个字符。如果需要存储更多信息,可以放在图像数据之后。 |
||
颜色表数据 |
可变 |
可变 |
如果颜色表类型为 0,则该域不存在,否则越过该域直接读取图像颜色表规格中描述了每项的字节数,为 2,3,4 之一。 |
||
图像数据 |
可变 |
可变 |
RGB颜色数据,存放顺序为:BBB GGG RRR (AAA) |
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/127750.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...