首页 > 编程知识 正文

TGA格式片,TGA格式特点

时间:2023-05-04 06:42:44 阅读:210462 作者:2183

什么是TGA?

TGA(Targa)格式是计算机上应用最广泛的图象格式。在兼顾了BMP的图象质量的同时又兼顾了JPEG的体积优势 。并且还有自身的特点: 通道效果、方向性 。在CG领域常作为影视动画的序列输出格式,因为兼具体积小和效果清晰的特点。

TGA的结构比较简单,属于图形、图像数据的通用格式,在多媒体领域有很大影响,是计算机生成图像向电视转换的一种首选格式 。TGA图像格式最大的特点是可以做出不规则形状的图形、图像文件,一般图形、图像文件都为四方形,若需要有圆形、菱形甚至是缕空的图像文件时,TGA就可以派上用场 。

TGA格式支持压缩,使用不失真的压缩算法。

一、TGA文件格式是怎样的?


(cmdhb)

如图所示,新的TGA文件包含5个区域:
(1)TGA文件头(TGA File Header);
(2)图像/颜色表数据(Image/Color Map Data);
(3)开发者区域(Developer Area);
(4)拓展区域(Extension Area);
(5)TGA文件注脚(TGA File Footer)

TGA文件格式中涉及几种类型的颜色?

1、伪彩色(pseudo-color)图像的每个像素值实际上是一个索引值或代码,该代码值作为色彩查找表CLUT(Color Look-Up Table)中某一项的入口地址,根据该地址可查找出包含实际R、G、B的强度值。这种用查找映射的方法产生的色彩称为伪彩色。

2、真彩色(true-color)是指图像中的每个像素值都分成R、G、B三个基色分量,每个基色分量直接决定其基色的强度,这样产生的色彩称为真彩色。

3、调配色(direct-color)的获取是通过每个像素点的R、G、B分量分别作为单独的索引值进行变换,经相应的色彩变换表找出各自的基色强度,用变换后的R、G、B强度值产生的色彩。

二、TGA文件各部分都包含哪些字段?

文件头包含哪些字段?

1、图像信息字段长度(ID length)– 字段1(1个字节):这个字段规定了包含在字段6(Image ID字段)中的字节数,最大的字符数是255,它的值为0,则表示在这个文件中没有图像信息字段。

2、颜色表类型(Color Map Type)– 字段2(1个字节):当前已定义的有两个值0或者1,0 表示没有颜色表(color map),1 表示颜色表存在。前面的128个颜色表类型码由Truevision保留使用,而后面的128个颜色表类型码(128-255)能用于开发者的应用中。

3、图像类型(Image Type)– 字段3(1个字节):TGA文件格式可以用于存储各种位深度的伪彩色,真彩色,调配色,目前定义了7种文件格式。

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)

图像/颜色表数据(Image/Color Map Data)包含哪些字段?

1、图像信息字段(Image ID)– 字段 6(可变长):存储了图像的身份信息(Identifying Information)这个字段最长为255个字节,Field 1字段规定了它的长度。

2、颜色表数据(Color Map Data) –字段7(可变长):这个变长字段包含了颜色表信息(LUT数据),字段4.3和字段4.2共同规定了字段7的长度。每个颜色表表项用整数个字节存储,规定每个颜色表的RGB采用连续的位存储,每个颜色的位长为MIN(Field 4.3/3,8)。

3、图像数据(Image Data)– 字段 8(可变长):这个字段包含Width*Height个像素,每个像素的格式如下所示:(1)用伪彩色表示,则是一个颜色图的一个索引号;(2)真彩图,则是属性,红绿,蓝顺序的数据;(3)用调配色表示,就是独立的颜色表索引。

开发者区域(DEVELOPER AREA)包含哪些字段?

开发者数据(Developer Data) – 字段 9(可变长):开发者字段的尺寸和格式完全是由开发者规定的,读取包含这些信息的文件时,完全可以忽略它们,除非理解这些内容。文件可能包含多个开发者字段,所以需要创建开发者目录(Developer Directory),它是开发者区域中这些字段的映射表。开发者目录可以使用偏移量来表示,存储在TGA文件注角(File Footer)4-7字节内,该偏移量是从文件的起始位置算起至开发者目录的起始位置,如果偏移量为0,则不存在开发者字段。
开发者目录(cmdhb)

目录中的第一个short值,规定了在目录中标签的数量,余下的是一组TAG,OFFSET,和SIZE的组合,每个TAG是一个分布在0至65535之间的值,0-32767的值用于开发者使用,32668-65535之间的值被Truevision保留,Truevision维护一个标签列表,分配给一些公司。

拓展区域(EXTENSION AREA)包含哪些字段?

该拓展区域用于满足一些开发者对额外信息的需求,该区域的位置也是通过保存在TGA文件注脚中的偏移量来确定的,如果该偏移量为0,则不存在拓展区域。该区域包括拓展区域尺寸,作者名字,作者评论等信息,

TGA文件注脚(TGA FILE FOOTER)包含哪些字段?

最后26个字节表示文件注脚,但是对于原先版本的TGA文件格式不存在这个区域,可以扫描8-23字节,如果符合下列字符串:TRUEVISION-XFILE,说明很有可能存在注脚字段,否则则属于原先版本的TGA文件。该区域的格式如下所示:Bytes 0-3:拓展区域偏移量;Bytes 4-7:开发者区域偏移量;Bytes 8-23:签名;Byte 24:ASCII码”.”;Byte 25:二进制数0x00。

三、TGA图片的压缩类型?

TGA图片可以选择行程编码类型,行程编码利用到许多图片有很多像素的值相同的特点,对于大区域像素相同值的图片的行程编码可以有效的减小存储图像的大小。行程编码(RLE)图像包含两种类型的数据元素:行程包(Run-length Packet)和原始包(Raw Packet)。每个包的第1个字段称为重复计数字段(Repetition Count Field),第2个字段称为像素值字段(Pixel Value Field),行程包的像素值字段包含一个简单的像素值,而原始包的像素值字段包含一个可变长的像素值。重复计数字段的最高位(即位7)表明该包的类型,如果值为1,则是行程包,如果值为0,则为原始包。重复计数字段低7位规定了包中的像数值的数目,如果是行程包,它表明有像素值字段规定的像素值的连续像素数;如果是原始包,它规定了接下来的字段所包含的像素数。如果值为0,则实际有1个像素,如果值为0x7F,则有128个像素。

行程包从不跨行编码像素,即使是一个扫描行的结尾和下一行的开始包含相同的像素值。这里举个例子说明上述两种包的区别,考虑有一行数据,128个3字节大小的像素,像素值都一样。用原始包表示,则需要3*128+1=385个字节;用行程包表示,则仅需要1+3=4个字节。

下图分别为行程包(Run-length Packet)和原始包(Raw Packet)

(cmdhb)

四、文件格式总结

参考链接:https://blog.csdn.net/Blues1021/article/details/45438673?locationNum=5&fps=1

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。