TGA(Targa)格式是计算机上应用最广泛的图象格式。在兼顾了BMP的图象质量的同时又兼顾了JPEG的体积优势。并且还有自身的特点:通道效果、方向性。在CG领域常作为影视动画的序列输出格式,因为兼具体积小和效果清晰的特点。TGA格式支持压缩,使用不失真的压缩算法。
TGA图像格式最大的特点是可以做出不规则形状的图形、图像文件,一般图形、图像文件都为正方形,若需要有圆形、棱形甚至是镂空的图像文件时,TGA就可以派上用场了。
TGA文件结构由五部分组成:文件头,图像/颜色表数据,开发者自定义区域,扩展区域和文件尾。
文件头:由图像描述信息字段长度,颜色表类型,图像类型,颜色表说明和图像说明五个字段组成,总计18字节,描述了图像存储的基本信息,应用程序可根据该部分字段值读写图像数据。
图像/颜色表数据:由图像描述信息(可选),颜色表数据和图像数据三部分组成,用于存储图片的图像信息。
开发者自定义区域:包含开发者定义字段列表和开发者字典(用于存储开发者定义字段的值),该区域为开发者扩展该文件格式提供接口,以便存储额外的信息。
扩展信息:由扩展区域大小,作者姓名,作者注释,日期/时间,工作名称/ID,工作累计耗时,编辑软件的名称,编辑软件的版本,关键颜色,像素宽高比,灰度值,颜色校正表偏移量,缩略图偏移量,扫描线表偏移量,alpha通道类型,扫描线表,缩略图图像数据和颜色校正表组成。
文件尾:由扩展区域偏移量,开发者目录偏移量和TGA文件扩展格式签名三部分组成,用于验证TGA文件扩展格式,并可以确定扩展区域和开发者字典的位置。
字段:
使用FlexHex打开一张TGA格式的文件,信息如下(TGA文件格式中字段的字节存储次序采用Little-Endian的方式,即小端在前。)
一.文件头
(1)图像描述信息字段长度(ID Length):大小为1字节,“00”表示字段6“图像描述信息”大小为0,即没有图像描述信息。
(2)颜色表类型(Color Map Type):大小为1字节,“00”表示不使用颜色表。
(3)图像类型(Image Type):大小为1字节,"02"表示改图是未压缩的真彩色图像。
(4)颜色表说明(Color Map Specification):大小为5字节,“0”表示该图无颜色表。
(5)图像说明(Image Specification):大小为10字节,1-2字节“0000”表示坐标原点x值为0,3-4字节“0000”表示坐标原点y值为0,5-6字节“0008”表示该图宽度为0800H(即2048),7-8字节“0008”表示该图高度为0800H(即2048),第9字节“18"表示像素深度为18H(十进制表示为24),第10字节”00“表示图像坐标原点位置在左下角。
二.图像/颜色表数据
(1)图像描述信息(可选):字段1"ID Length"为0,即不含图像描述信息
(2)颜色表数据:字段2"Color Map Type"为0,即不含颜色表数据
(3)图像数据:该图像大小为2048*2048,像素深度为24位,图像数据应为2048*2048*24bit(即12582912字节)。
三.文件尾
该文件大小为12582956字节,除文件头和图像/颜色表数据18+12582912=12582930字节外,还有26字节。最后这26字节表示文件注脚。1-4字节为拓展区域偏移量,5-8字节为开发者区域偏移量,9-24字节为签名,第25字节为TGA文件结束字符,最后1字节为文件结束符。因此该文件无拓展区域偏移量,无开发者区域偏移量。