TGA--数据压缩第二次作业
一.TGA文件简介
1.概述
TGA(Tagged Graphics)
TGA是由 美国Truevision公司为其显示卡开发的一种 图像文件格式,已被国际上的图形、图像工业所接受。现在已成为 数字化图像,以及运用光线跟踪算法所产生的高质量图像的常用格式。TGA文件的 扩展名为.tga。TGA的结构比较简单,属于一种图形、图像数据的通用格式,目前大部分文件为24位或32位真彩色,在多媒体领域有着很大影响。由于Truevision公司推出TGA的目的是为了采集、输出电视图像,所以TGA文件总是按行存储、按行进行压缩的,这使得它同时也成为计算机生成图像向电视转换的一种首选格式。使用 photoshop 软件可以打开此类文件。
2.结构
TGA的结构比较简单,属于一种图形、图像数据的通用格式,在多媒体领域有很大影响,是 计算机生成图像向电视转换的一种首选格式。
3.特点
TGA图像格式最大的特点是可以做出不规则形状的图形、图像文件,一般图形、图像文件都为四方形,若需要有圆形、菱形甚至是缕空的图像文件时,TGA可就派上用场了!
4.优点
在工业设计领域,使用三维软件制作出来的图像可以利用TGA格式的优势,在图像内部生成一个Alpha(通道),这个功能方便了在平面软件中的工作。
Tga常见的格式有非压缩RGB和压缩RGB两种格式,文件的第三个Byte位作为标记:2为非压缩RGB格式,10为压缩RGB格式。这里的类只实现读取非压缩格式的tga文件。
5.TGA文件格式
名称 |
偏移 |
长度 |
说明 |
||
图像信息字段长度 |
0 |
1 |
本字段是 1 字节无符号整型,指出图像信息字段( 见本子表的后面 )长度,其取值范围是 0 到 255 ,当它为 0 时表示没有图像的信息字段。 |
||
颜色表类型 |
1 |
1 |
0 表示没有颜色表,1 表示颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。 |
||
图像类型码 |
2 |
1 |
该字段总为 2 , 这也是此类型为格式 2 的原因。 |
||
颜色表规格字段 |
颜色表首址 |
3 |
2 |
颜色表首的入口索引,整型(低位-高位) |
如果颜色表字段为0,则忽略该字段 |
颜色表的长度 |
5 |
2 |
颜色表的表项总数,整型(低位-高位) |
||
颜色表项位数 |
7 |
1 |
位数(bit),16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA |
||
图像规格字段 |
图像 X 坐标起始位置 |
8 |
2 |
图像左下角 X坐标的整型(低位-高位)值 |
|
图像 Y 坐标起始位置 |
10 |
2 |
图像左下角 Y坐标的整型(低位-高位)值 |
||
图像宽度 |
12 |
2 |
以像素为单位,图像宽度的整型(低位-高位) |
||
图像高度 |
14 |
2 |
以像素为单位,图像宽度的整型(低位-高位) |
||
图像每像素存储占用位数 |
16 |
2 |
它的值为16,24 或 32 等等。决定了该图像是 TGA 16,TGA24,TGA 32 等等。 |
||
图像描述符字节 |
17 |
1 |
bits 3-0 - 每像素对应的属性位的位数; 对于TGA 16, 该值为 0 或 1,对于 TGA 24,该值为 0,对于 TGA 32,该值为 8。 bit 4 - 保留,必须为 0 bit 5 - 屏幕起始位置标志 0 = 原点在左下角 1 = 原点在左上角 对于 truevision 图像必须为 0 bits 7-6 - 交叉数据存储标志 00 = 无交叉 01 = 两路奇/偶交叉 10 = 四路交叉 11 = 保留 |
||
图像信息字段 |
18 |
可变 |
包含一个自由格式的,长度是图像由“图像信息字段”指定。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以含有 255 个字符。如果需要存储更多信息,可以放在图像数据之后。 |
||
颜色表数据 |
可变 |
可变 |
如果颜色表类型为 0,则该域不存在,否则越过该域直接读取图像颜色表规格中描述了每项的字节数,为 2,3,4 之一。 |
||
图像数据 |
可变 |
可变 |
RGB颜色数据,存放顺序为:BBB GGG RRR (AAA) |
6.TGA文件格式解析
(1)TGA文件头(TGA File Header);
图像规约(Image Specification)– 字段 5(10个字节):
这个字段和它的子字段描述了图像的屏幕位置,尺寸和像素深度。
(2)图像/颜色表数据(Image/Color Map Data);
(3)开发者区域(Developer Area);
(4)拓展区域(Extension Area);
该拓展区域用于满足一些开发者对额外信息的需求,该区域的位置也是通过保存在TGA文件注脚中的偏移量来确定的,如果该偏移量为0,则不存在拓展区域。该区域包括拓展区域尺寸,作者名字,作者评论等信息。
(5)TGA文件注脚(TGA File Footer)。
最后26个字节表示文件注脚,但是对于原先版本的TGA文件格式不存在这个区域,可以扫描8-23字节,如果符合下列字符串:
说明很有可能存在注脚字段,否则则属于原先版本的TGA文件。该区域的格式如下所示:
二.TGA文件实例分析
1.将文件转化为TGA格式
用格式工厂将下图转为tga格式后,用Visual Studio2022以二进制编辑器形式打开。
2.分析文件
(1)文件头
(2)文件尾
(3)验证文件大小
通过分析二进制数据,可以计算得到文件大小:
18(文件头)+946*1643*3(图像部分)+0+0(无扩展区域和开发在自定义区域+26(文件尾)=4662878字节
TGA--数据压缩第二次作业相关推荐
- 数据压缩第二周作业——图片TIFF格式分析
数据压缩第二周作业 TIFF格式概述 特点 组成 图像文件头(Image File Header - IFH) Byteorder Version Offest to first IFD 图像文件目录 ...
- 数据压缩 第二次作业
1.设X是一个随机变量,取值范围是一个包含M个字母的符号集.证明0<=H(X)<=log2M. 2.证明如果观察到一个序列的元素为iid分布,则该序列的熵等于一阶熵. 3.给定符号集A{a ...
- 南京大学网络教育计算机第二次作业,南京大学网络学院计算机基础第二次作业...
南京大学网络学院计算机基础第二次作业 作业名称:计算机基础第2次作业 作业总分:100 通过分数:60 起止时间: 2015-5-4 至 2015-5-29 23:59:00 标准题总分:100 详细 ...
- 丁贵才130702010042第二次作业
第二次作业 2.9 设有如下语句,请用相应的谓词公式分别把它们表示出来: (1)有的人喜欢梅花,有的人喜欢菊花,有的人既喜欢梅花有喜欢梅花. 解:定义谓词 P(x):x是人 L(x,y):x喜欢y y ...
- 20189317 《网络攻防技术》 第二周作业
一.黑客信息 (1)国外黑客 1971年,卡普尔从耶鲁大学毕业.在校期间,他专修心理学.语言学以及计算机学科.也就是在这时他开始对计算机萌生兴趣.他继续到研究生院深造.20世纪60年代,退学是许多人的 ...
- mysql 三阶多项式拟合_2014年9月份考试机械CAD_CAM第二次作业
2014年9月份考试机械CAD/CAM第二次作业 一.单项选择题(本大题共40分,共 20 小题,每小题 2 分) 1. 在CAD作业中,采用数据文件形式来处理工程数表.线图数据,其目的是() A. ...
- 2021年春季学期-信号与系统-第二次作业参考答案-第十小题
本文是 2021年春季学期-信号与系统-第二次作业参考答案 的参考答案. ▌第十题 10 从网络学堂下载代表两个信号的音频文件: 音频文件: f1(t)f_1 \left( t \right)f1( ...
- 2021年春季学期-信号与系统-第二次作业参考答案-第九小题
本文是 2021年春季学期-信号与系统-第二次作业参考答案 的参考答案. ▌第九题 9. 已知三个系统的输入输出关系分别为: 把上述三个子系统进行如下的级联,求系统的输入输出关系,它是线性.时不变系统 ...
- 2021年春季学期-信号与系统-第二次作业参考答案-第八小题
本文是 2021年春季学期-信号与系统-第二次作业参考答案 的参考答案. ▌第八题 8. 判断下列系统是否为线性.时不变.因果? (1)第一小题 r(t)=ddte(t)r\left( t \righ ...
- 2021年春季学期-信号与系统-第二次作业参考答案-第七小题
本文是 2021年春季学期-信号与系统-第二次作业参考答案 的参考答案. ▌第七题 7. 判断下列系统是否可逆.若可逆,给出它的逆系统:若不可逆,指出使该系统产生相同输出的两个输入信号. 判断系统是否 ...
最新文章
- ldap、additional info: no global superior knowledge
- Ubuntu 17.4下如何安装和配置flash player
- linux c warning 'XXX' declared 'static' but never defined解决方法
- C语言 实现一个函数判断year是不是润年
- python字符串去掉特殊符号和空格_从字符串中删除所有特殊字符,标点符号和空格...
- Kibana停止kibana的方法命令:找到5601端口对应的进程ID 把此进程进行kill即可
- 借助Redis完成延时任务
- 航测大数据量处理_揭秘航测局“航空摄影质量自动检查系统”的“黑科技”
- B 站崩了,受害程序员聊聊
- EF:oracle的number类型映射为C#的boolean类型
- FFmpeg实战命令(不断更新中...)
- python保存后不运行_Python后台执行不启用缓存
- iOS 绝对值方法
- Win7 SP1 安装 .NET Framework 4.6.2,提示“时间戳签名和或证书无法验证或已损坏”
- 七倍压电路图_二极管简单升压电路 晶体二极管与电容七倍升压电路图如何分析...
- python假分数约分_数学中假分数怎么约分
- 命令行基础-vim编辑器
- 借助Bilibili Evolved和aria2批量下载b站视频
- NPL笔记——语言模型
- 强制清空浏览器缓存与无视管理员权限删除应用
热门文章
- HTTP状态码及说明大全
- 菜鸟、大牛和教主,三者的区别
- Vue-router,从基础入门到手拿大厂Offter,看这篇文章就够了。
- 考中山大学计算机博士专业考什么,2020年中山大学博士考试的科目以及录取分数值...
- Dirty Cow Attack Lab(中文译版)
- python 创建空的numpy数组_真假美猴王-Numpy数据与Python数组的区别与联系
- linux服务器创建wss服务 https+wss配置指南
- 云场景实践研究第83期:众安保险
- 2018中国大学生程序设计竞赛 - 网络选拔赛
- mac obs直播软件 无法输出音频解决办法