一、TGA文件概述

TGA是由美国Truevision公司为其显示卡开发的一种图像文件格式,结构比较简单,属于一种图形、图像数据的通用格式,在多媒体领域有很大影响,是计算机生成图像向电视转换的一种首选格式。TGA最大的特点是可以做出不规则形状的图形、图像文件,该格式支持压缩,使用不失真的压缩算法,可以带通道图,另外还支持行程编码压缩。

二、TGA文件格式

TGA文件包含5个区域:

(1)TGA文件头(TGA File Header);

图像信息字段长度(ID length)– 字段1(1个字节)
这个字段规定了包含在字段6(Image ID字段)中的字节数,取值范围0-255,
它的值为0,则表示在这个文件中没有图像信息字段。
颜色表类型(Color Map Type)– 字段2(1个字节):
当前已定义的有两个值0或者1,0 表示没有颜色表(color map),1 表示颜色表存在。
图像类型(Image Type)– 字段3(1个字节):
TGA文件格式可以用于存储各种位深度的伪彩色,真彩色,调配色,目前定义的7种文件格式。
0-没有图像数据
1-未压缩,颜色表映射图像
2-未压缩,真彩图像
3-未压缩,黑白图像
9-行程编码,颜色表映射图像
10-行程编码,真彩图像
11-行程编码,黑白图像
颜色表规约(Color Map Specification) – 字段 4(5字节):
这个字段和它的子字段描述图像中使用的颜色表,如果颜色表类型字段为0,则表示不存在颜色表,则5个字节应该被设置为0,这些字节需要写入文件中。

名称 字节数 说明
颜色表首地址 2 第一个颜色表表项的索引,是装载颜色表的首地址
颜色表长度 2 颜色表表项的数量
颜色表表项大小 1 每个表项占用的位数(15、16、24或32位)

图像规约(Image Specification)– 字段 5(10个字节):
这个字段和它的子字段描述了图像的屏幕位置,尺寸和像素深度。

名称 字节数 说明
图像X位置的起始位置 2 图像左下角的水平坐标
图像Y位置的起始位置 2 图像左下角的垂直坐标
图像宽度 2 \
图像高度 2 \
图像深度 1 表示每个像素占用的位数
图像描述符 1 0-3位规定每个像素属性位的数量,4-5位表示像素数据从文件发送到屏幕的顺序(4位表示从左到右,5位表示从上到下)

(2)图像/颜色表数据(Image/Color Map Data);

图像信息字段(Image ID)– 字段 6(可变长):
存储了图像的身份信息(Identifying Information)这个字段最长为255个字节,图像信息字段长度字段规定了它的长度。
颜色表数据(Color Map Data) –字段7(可变长):
这个变长字段包含了颜色表信息(LUT数据),颜色表表项大小和颜色表长度字段共同规定了颜色表数据的长度。每个颜色表表项用整数个字节存储,规定每个颜色表的RGB采用连续的位存储,每个颜色的位长为MIN(颜色表表项大小字段值/3,8)。
图像数据(Image Data)– 字段 8(可变长):
这个字段包含Width*Height个像素,每个像素的格式如下所示:
(1)用伪彩色表示,则是一个颜色图的一个索引号;
(2)真彩图,则是属性,红绿,蓝顺序的数据;
(3)用调配色表示,就是独立的颜色表索引。

(3)开发者区域(Developer Area);

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

(4)拓展区域(Extension Area);

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

(5)TGA文件注脚(TGA File Footer)。

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

TRUEVISION-XFILE

说明很有可能存在注脚字段,否则则属于原先版本的TGA文件。该区域的格式如下所示:

名称 偏移 长度 说明
拓展区域偏移量 可变 4 从文件开始到拓展数据区域的偏移量
开发者区域偏移量 可变 4 从文件开始到开发者字典数据的偏移量
签名 可变 16 \
ASCII码 可变 1 TGA文件结束字符,ASCII码值为“.”
二进制数 可变 1 文件结束字符,二进制数0x00

三、具体文件分析

示例图像:

以二进制方式打开该TGA图像文件:

(1)文件头分析

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

(2)图像\颜⾊表数据、开发者区域和拓展区域分析

由⽂件头信息可知该图像是未压缩的真彩图像,故该部分的数据存储顺序为:B-G-R-属性;

这⼀部分的数据⼤⼩为宽*⾼*3(24位)字节,在本例中:

宽(1440像素)*⾼(1080像素)*3(24位) = 4,665,600字节;

(3)文件注脚分析

  1. 第1-4字节:00 00 00 00 表示拓展区域偏移量为0
  2. 第5-8字节:00 00 00 00 表示开发者区域偏移量为0
  3. 第9-24字节:表示签名
  4. 第25字节:用ASCII码值“.”表示TGA文件结束
  5. 第26字节:用二进制数0x00表示文件结束

参考资料:

https://javajgs.com/archives/80020

https://wenku.baidu.com/view/f3aee2000422192e453610661ed9ad51f01d54b1.html

数据压缩作业2.1 多媒体文件分析——TGA文件相关推荐

  1. 数据压缩作业二——分析tga文件

    数据压缩作业二--分析tga文件 文章目录 数据压缩作业二--分析tga文件 一.TGA格式文件概述 二.使用二进制编辑软件分析tga文件 1.TGA文件头(TGA FILE HEADER) 2. 图 ...

  2. 作业2 分析TGA文件

    一.TGA文件格式解析 二.文件格式 文件头(Tga File Header):由图像描述信息字段长度.颜色表类型.图像类型.颜色表说明和图像说明五个字段组成,总计18字节,描述了图像存储的基本信息, ...

  3. [数据压缩作业1]利用Audacity分析浊音、清音、爆破音|RGB文件三通道分量的熵计算

    一. 利用Audacity分析浊音.清音.爆破音 1. 音频分析工具 本次实验使用软件Audacity 2. 分析时域波形和频谱 (1)浊音 以a为例 时域波形 频谱 结论:浊音时域具有周期性.在频域 ...

  4. 数据压缩作业1-1|利用Audacity分析浊音、清音、爆破音的时域及频域特性

    文章目录 实验任务 实验目的 实验步骤 实验过程 实验结果分析 实验总结 实验任务 使用Audacity分析浊音.清音爆破音的时域及频域特性 实验目的 能够基本掌握Audacity这款音频处理软件的基 ...

  5. 数据压缩作业:png图像格式分析

    以具体图片为例,借助VS2019分析png图像格式. 一.PNG格式 PNG,图像文件存储格式,其目的是试图替代GIF和TIFF文件格式,同时增加一些GIF文件格式所不具备的特性.PNG用来存储灰度图 ...

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

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

  7. 数据压缩作业2——TGA格式文件分析

    1 TGA格式简介 TGA是由美国Truevision公司为其显示卡开发的一种图像文件格式,已被国际上的图形.图像工业所接受.现已成为数字化图像,以及运用光线跟踪算法所产生的高质量图像的常用格式. T ...

  8. 数据压缩作业二 TGA格式文件分析

    1 TGA格式简介 TGA(Targa)格式是计算机上应用最广泛的图象格式.在兼顾了BMP的图象质量的同时又兼顾了JPEG的体积优势.并且还有自身的特点:通道效果.方向性.在CG领域常作为影视动画的序 ...

  9. 第二周作业:TGA文件解析

    文章目录 一.TGA是什么? 二.TGA图像文件格式 1.特点 2.解析 3.五个组成部分 总结 多媒体文件的设计思想与理解 媒体信息以灵活和可扩展的方式组织,以便于媒体的交换.管理.编辑和呈现 一. ...

最新文章

  1. Android_图像渲染(Shader)
  2. 【笔记】基于轻量和积网络及无人机遥感图像的大豆田杂草识别
  3. 算法竞赛注意事项(废话)
  4. consul使用的一些见解
  5. 关于CompletableFuture的一切,看这篇文章就够了
  6. 探寻安全管理平台(SOC)项目的关键成功因素(4)
  7. matlab数字带通滤波器的设计,基于MATLAB的数字带通FIR滤波器设计.doc
  8. 高等数学(第七版)同济大学 习题2-3 个人解答
  9. c51计数器代码汇编语言,51单片机6位计数器汇编程序
  10. mysql 生成随机手机号和随机中文名
  11. Introducing Heka
  12. 动态调整div大小 html,如何动态的根据用户屏幕的分辨率改变div的大小?
  13. mysql 筛选重复项(单列或者多列同时重复)
  14. 制作帮助文档的好助手- WORD2CHM WORD2HTML
  15. javascript--DOM事件流
  16. 达克效应 邓宁·克鲁格心理效应
  17. 小白学流程引擎-FLowable(五) — BPMN2.0模型规范
  18. 计算机程序设计员教程,国家职业资格培训教程计算机程序设计员(基础知识).ppt...
  19. 第五章 万无一失:网站的高可用架构(待续)
  20. 外贸开发大客户时的注意点

热门文章

  1. 在网站页脚添加QQ邮箱的“邮我”功能
  2. 仿QQ空间的一款APP(一)
  3. linux下cppcheck用法,CppCheck介绍与使用
  4. 记录一次minerd肉鸡木马的排查思路
  5. Android6.0 MTK 需求文档(六)
  6. STM8S---电源功耗管理之停机模式(halt)实现
  7. 画论22 韩拙《山水纯全集》
  8. 八段锦的运动特点及养生原理
  9. python入门笔记(1)
  10. linux tcp 无法握手,linux網絡編程之tcp的三次握手和四次揮手