分析tga图像格式文件

参考1:http://www.twinklingstar.cn/2013/471/tga-file-format/
参考2:http://blog.sina.cn/dpool/blog/s/blog_814e83d801014t3m.html

TGA中数据是如何组织的?
TGA B>原始文件结构(v1.0)由以下两个部分组成:文件头和图像/颜色表数据。
TGA扩展文件结构(v2.0)由五部分组成:文件头、图像/颜色表数据、开发者自定义区域、扩展区域和文件尾。其中V2.0版本的文件头和图像/颜色表数据与V1.0保持一致。

1.文件头(TGA File Header):由图像描述信息字段长度、颜色表类型、图像类型、颜色表说明和图像说明五个字段组成,总计18字节,描述了图像存储的基本信息,应用程序可依据该部分字段值读写图像数据。
(1)图像信息字段长度(ID length)– 字段1(1个字节);
(2)颜色表类型(Color Map Type)– 字段2(1个字节);
(3)图像类型(Image Type)– 字段3(1个字节);
(4)颜色表规约(Color Map Specification) – 字段 4(5字节):这个字段和它的子字段描述图像中使用的颜色表,如果颜色表类型字段为0,则表示不存在颜色表,则5个字节应该被设置为0,这些字节需要写入文件中。
字段4.1(2字节)颜色表首地址(First Entry Index):第一个颜色表表项的索引,是装载颜色表的首地址。
字段4.2(2字节)颜色表长度(Color map Length): 颜色表表项的数量.字段4.3(1个字节)颜色表表项大小(Color map Entry Size): 每个表项占用的位数,典型的值有15,16,24,或者32位。
(5)图像规约(Image Specification)– 字段 5(10个字节):这个字段和它的子字段描述了图像的屏幕位置,尺寸和像素深度。
字段5.1(2个字节) – 图像X位置的起始位置(X-origin of Image): 图像左下角的水平坐标。
字段5.2(2个字节) –图像Y位置的起始位置(Y-origin of Image): 图像左下角的垂直坐标。
字段5.3(2个字节) –图像宽度(Image Width)
字段5.4(2个字节) –图像高度(Image Height)
字段5.5(1个字节) –像素深度(Pixel Depth):这个字段表示每个像素占用的位数,通常的值是8,16,24,32位。
字段5.6(1个字节) –图像描述符(Image Descriptor)

2.图像/颜色表数据(Image/Color Map Data):由图像描述信息(可选)、颜色表数据和图像数据三部分组成,用于存储图片的图像信息。
(1)图像信息字段(Image ID)– 字段 6(可变长):存储了图像的身份信息(Identifying Information)这个字段最长为255个字节,Field 1字段规定了它的长度。
(2)颜色表数据(Color Map Data) –字段7(可变长):这个变长字段包含了颜色表信息(LUT数据),字段4.3和字段4.2共同规定了字段7的长度。
(3)图像数据(Image Data)– 字段 8(可变长):这个字段包含Width*Height个像素,每个像素的格式如下所示:(1)用伪彩色表示,则是一个颜色图的一个索引号;(2)真彩图,则是属性,红绿,蓝顺序的数据;(3)用调配色表示,就是独立的颜色表索引。

3.开发者自定义区域(Developer Area):包含开发者定义字段列表和开发者字典(用于存储开发者定义字段的值),该区域为开发者扩展该文件格式提供接口,以便存储额外的信息。
开发者数据(Developer Data) – 字段 9(可变长)

4.扩展区域(Extension Area):由扩展区域大小、作者姓名、作者注释、日期/时间、工作名称/ID、工作累计耗时、编辑软件的名称、编辑软件的版本、关键颜色、像素宽高比、灰度值、颜色校正表偏移量、缩略图偏移量、扫描线表偏移量、alpha通道类型、扫描线表、缩略图图像数据和颜色校正表组成,为Truevision公司定义的标准扩展功能,以提供更多的图像附加信息。
5.文件尾(TGA File Footer):由扩展区域偏移量、开发者目录偏移量和TGA文件扩展格式签名三部分组成,用于验证TGA文件扩展格式,并可以确定扩展区域和开发者字典的位置。

tga六种图像类型
数据类型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

tga应用模式
1.未压缩的颜色表图像:这种类型的格式用于存储基于颜色表的图像(像素值用颜色索引表示),文件头中的颜色表类型(Field2)项的值必须为1,图像类型(Field3)必须为1。
2.未压缩的真彩色图像:这种类型的格式用于存储用(A)RGB值表示的像素数据,文件头中的颜色表类型(Field2)项的值必须为0,图像类型(Field3)必须为2。
3.未压缩的黑白图像:这种类型的格式用于存储灰度值表示的像素数据,文件头中的颜色表类型(Field2)项的值必须为0,图像类型(Field3)必须为3。
4.RLE压缩的颜色表图像:这种类型的格式用于存储基于颜色表的图像(像素值用颜色索引表示),存储数据时采用RLE压缩算法,文件头中的颜色表类型(Field2)项的值必须为1,图像类型(Field3)必须为9。
5.RLE压缩的真彩色图像:这种类型的格式用于存储用(A)RGB值表示的像素数据,存储数据时采用RLE压缩算法,文件头中的颜色表类型(Field2)项的值必须为0,图像类型(Field3)必须为10。
6.RLE压缩的黑白图像:这种类型的格式用于存储灰度值表示的像素数据,存储数据时采用RLE压缩算法,文件头中的颜色表类型(Field2)项的值必须为0,图像类型(Field3)必须为11。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值