一、TGA文件概述

1.什么是TGA格式图像?
        tga是由美国Truevision公司为其显示卡开发的一种图像文件格式,已被国际上的图形、图像工业所接受。现已成为数字化图像,以及运用光线跟踪算法所产生的高质量图像的常用格式。TGA文件的扩展名为.tga,该格式支持压缩,使用不失真的压缩算法,可以带通道图,另外还支持行程编码压缩。

2.TGA文件各区域及其包含的字段
TGA文件包含5个区域,分别为:
(1)TGA文件头(TGA File Header)
(2)图像\颜色表数据(Image/Color Map Data)
(3)开发者区域(Developer Area)
(4)拓展区域(Extension Area)
(5)TGA文件注脚(TGA File Footer)

表1.各区域的字段分布

区域名称

字段

字段长度

文件头

图像信息字段长度

1 byte

颜色表类型

1 byte

图像类型

1 byte

颜色表规约

5 byte

图像规约

10 byte

图像\颜色表数据

图像信息字段

可变长,由图像信息字段长度确定

颜色表数据

可变长,由颜色表规约字段确定

图像数据

可变长,包含图像长*宽个像素

开发者区域

开发者数据

可变长

拓展区域

可变长,由保存在TGA文件注脚中的偏移量确定

TGA文件注脚

保存文件注脚信息

最后26 byte

3.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.以该图为例分析TGA文件的格式

使用VS-二进制编辑器打开此图片:

1.文件头分析

表2.文件头18字节分布

名称

偏移

长度

说明

图像信息字段长度

0

1

这个字段规定图像信息字段的长度,最大的字符数是255,若值为0,则表明这个文件中没有图像信息字段

颜色表类型

1

1

0表示没有颜色表,1表示有颜色表

图像类型

2

1

TGA文件格式可以用于存储各种位深度的伪彩色、真彩色、调配色,目前定义的7种文件格式如下:

0 - 没有图像数据

1 - 未压缩,颜色表映射图像

2 - 未压缩,真彩图像

3 - 未压缩,黑白图像

9 - 行程编码,颜色表映射图像

10 - 行程编码,真彩图像

11 - 行程编码,黑白图像

颜色表规约

颜色表首地址

3

2

第1个颜色表表项的索引,装载颜色表的首地址

颜色表长度

5

2

颜色表表项的数量

颜色表表项大小

7

1

每个表项占用的位数,典型值有15、16、24或32位

图像规约

图像x位置的起始位置

8

2

图像左下角的水平座标

图像x位置的起始位置

10

2

图像左下角的垂直坐标

图像宽度

12

2

低位在前高位在后

图像高度

14

2

像素深度

16

1

该字段表示每个像素占用的位数,通常的值为8、16、24、32位

图像描述符

17

1

0-3位:规定每个像素属性位的数量

4-5位:表示像素数据从文件发送到屏幕的顺序,位4表示从左到右,位5表示从上到下,如下所示:

Bit 5   Bit 4

从下到上,从左到右   0      0

从下到上,从右到左   0      1

从上到下,从左到右   1      0

从上到下,从右到左   1      1

图2.示例图前18字节的文件头

(1)第1字节:00表示此图像中没有图像信息字段
(2)第2字节:00表示此图像中没有颜色表
(3)第3字节:02表示此图像为未压缩的真彩图像
(4)第4-8字节:均为00表示该图像无颜色表信息
(5)第9-10字节:00 00表示图像左下角水平坐标为0
(6)第11-12字节:00 00表示图像左下角垂直坐标为0
(7)第13-14字节:AA 04表示图像宽度为4AA(16进制数)即1194像素
(8)第15-16字节:60 03表示图像高度为360(16进制数)即864像素
(9)第17字节:18表示图像深度为18(16进制数)即24位
(10)第18字节:00表示图像从下到上从左到右发送到屏幕

2.图像\颜色表数据、开发者区域和拓展区域分析
由文件头信息可知该图像是未压缩的真彩图像,故该部分的数据存储顺序为:B-G-R-属性;
这一部分的数据大小为宽*高*3(24位)字节,在本例中:
        宽(1194像素)*高(864像素)*3(24位) = 3,094,848字节;
与文件头(18字节)和文件注脚(26字节)相加为该图像的总大小即3,094,892字节;
查看图像的属性可验证该计算方法。

图3.TGA图像属性

3.TGA文件注脚分析

表3.文件注脚26字节分布

名称

偏移

长度

说明

TGA文件注脚

拓展区域偏移量

可变

4

从文件开始到扩展数据区域的偏移量

开发者区域偏移量

可变

4

从文件开始到开发者字典数据的偏移量

签名

可变

16

最后26个字节表示文件注脚,凡是对于原先版本的TGA文件格式不存在这个区域,可以扫描8-23字节,如果符合下列字符串:

TRUEVISION-XFILE

说明很有可能存在注脚字段,否则属于原先版本的TGA文件

ASCⅡ码

可变

1

TGA文件结束字符——ASCⅡ码值为“.”

二进制数

可变

1

文件结束字符——二进制数0x00

图3.示例图最后26字节的文件注脚

(1)第1-4字节:表示拓展区域偏移量为0
(2)第5-8字节:表示开发者区域偏移量为0
(3)第9-24字节:表示签名,存在“TRUEVISION-XFILE”字符串,表明存在注脚字段
(4)第25字节:用ASCⅡ码值“.”表示TGA文件结束
(5)第26字节:用二进制数0x00表示文件结束

三、总结
        分析TGA格式的图像文件,主要是要理解各个字段数据的含义,格外要注意“低位在前高位在后”的读数规则,以便于以后编程的实现。

TGA格式图片文件分析相关推荐

  1. 【数据压缩2】TGA格式图片文件分析

    一.TGA文件概述 1.什么是TGA格式图像?         tga是由美国Truevision公司为其显示卡开发的一种图像文件格式,已被国际上的图形.图像工业所接受.现已成为数字化图像,以及运用光 ...

  2. 3_HEIF/heic格式图片文件解析(20190107)

    3_HEIF/heic格式图片文件解析(20190107) HEIF/heic格式图片文件解析(20190107) 文章目录 参考: https://zhuanlan.zhihu.com/p/3466 ...

  3. java读取ppm图片_C++ 输出PPM格式图片文件

    ##PPM简介 学习图形学时为了直观地观察结果,需要输出图片,而PPM是一种最简单的图片格式,非常适合新手使用. PPM文件的内容大概是这样的: 第一行固定为P3,代表写入的是PPM格式的RGB图像, ...

  4. 微软RAW格式补丁下载,让 Windows7 直接支持预览和查看 RAW 格式图片文件!

    对于摄影师或摄影爱好者来说,很多时候都需要和 RAW 格式的图片打交道,但是 Windows7 在不安装第三方软件的情况下,是无法在资源管理器中直接预览 RAW 文件的,对此经常有朋友表示不爽. 最近 ...

  5. 对于TGA格式文件的分析

    一.TGA格式文件概述 TGA格式图片文件(Tagged Graphics)是由美国Truevision公司为其显示卡开发的一种图像文件格式,文件后缀为".tga",已被国际上的图 ...

  6. TGA格式文件转化为YUV文件

    因为之前分析的PNG格式文件数据有压缩,不太好提取数据,所以这一次尝试将TGA格式的文件转化为YUV格式的文件. TGA文件的文件头中包括图片类型.图片的宽高数据.每像素占用的bit位数等数据,本次的 ...

  7. 数据压缩·作业五(tga文件分析)

    从tga文件如何设计去提问题然后分析tga文件. 1.明确tga文件由几种文件类型,用哪个字段表示. 2.用类型2来说明tga文件的文件分为几部分,每个部分都说明了什么信息. 3.那些块是用来交换.管 ...

  8. Windows微信聊天图片文件的解码和图片、视频占满电脑磁盘空间的清理

    1 问题现象 我的Windows版微信最近老是提示"磁盘空间不足200MB,需及时清理磁盘". 使用文件资源管理器查看我的电脑磁盘使用情况,发现C盘只剩下174MB空间可用.系统盘 ...

  9. 【数字图像处理】一.MFC详解显示BMP格式图片

    本文主要是讲述<数字图像处理>系列栏目中的第一篇文章.主要详细介绍了BMP图片格式,同时使用C++和MFC显示BMP格式,主要结合自己的<数字图像处理>课程和以前的项目叙述讲解 ...

  10. MFC详解显示BMP格式图片

    本文主要是讲述<数字图像处理>系列栏目中的第一篇文章.主要详细介绍了BMP图片格式,同时使用C++和MFC显示BMP格式,主要结合自己的<数字图像处理>课程和以前的项目叙述讲解 ...

最新文章

  1. AngularJS 最佳实践
  2. 百度地图获取河流_想要提高学生对地理的兴趣,就要多利用地图,培养学生的思维能力...
  3. Python:代码规范和命名规范
  4. 大数据分析的四大趋势有哪些
  5. 《痞子衡嵌入式半月刊》 第 2 期
  6. 金蝶k3wise云服务器配置,金蝶K3WISEV15.0系统配置说明
  7. 谷歌浏览器屏蔽广告插件
  8. 切向量,法向量,梯度
  9. 单节锂离子电池充电设计
  10. kdj买卖指标公式源码_通达信kdj买卖指标公式
  11. java英语单词查询,输入一个单词根据字典查询单词意思
  12. 关于阿里直播 安卓手机支付宝不支持的处理
  13. 两波形相位差的计算值_国际学科备考系列A-level物理:相位和相位差的数学解释及物理应用...
  14. iPhone自定义手机铃声完整版教程
  15. 生物信息数据格式:fasta格式
  16. Java实现zip文件压缩:单个文件、文件夹以及文件和文件夹的压缩
  17. 三星手机和计算机如何连接打印机,三星打印机连接到电脑没反应怎么办
  18. WinForm常用控件
  19. 2022年9月青少年软件编程(图形化)等级考试试卷--三级--跳高比赛
  20. Unmasking Clever Hans predictors and assessing what machines really learn:揭露“聪明汉斯”预测变量并评估机器到底学习到了什么?

热门文章

  1. 一个简单的网页制作作业,宠物html静态网页制作成品代码(学生网页设计作业源码)
  2. Modern UI for WPF 初接触
  3. 吊炸天SpringBoot接入支付宝支付【附关键代码】
  4. visual studio 版本的区别
  5. WebStorm+Chrome插件JetBrains IDE Support进行实时调试
  6. Enterprise Architect安装
  7. 使用DBUtils报错connot create bean 错误解决的办法
  8. 如何从巨潮资讯爬取股票公告
  9. VMware Workstation虚拟机无法共享主机网络解决方法
  10. Android之APP跳转权限设置界面