一、什么是TGA格式

TGA格式的定义

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

TGA格式的特点

  • TGA(Targa)格式是计算机上应用最广泛的图象格式。在兼顾了BMP的图象质量的同时又兼顾了JPEG的体积优势。并且还有自身的特点:通道效果、方向性。在CG领域常作为影视动画的序列输出格式,因为兼具体积小和效果清晰的特点。
  • TGA图像格式最大的特点是可以做出不规则形状的图形、图像文件,一般图形、图像文件都为正方形,若需要有圆形、棱形甚至是镂空的图像文件时,TGA就可以派上用场了。
  • TGA格式支持压缩,使用不失真的压缩算法。
    在工业设计领域,使用三维软件制作出来的图像可以利用TGA格式的优势,在图像内部生成一个Alpha(通道),这个功能方便了在平面软件中的工作。

这里是引用百度百科对词条“tga”的解释

二、TGA格式的组成

  • TGA 原始文件结构(v1.0)由以下两个部分组成:文件头和图像/颜色表数据。
  • TGA扩展文件结构(v2.0)由五部分组成:文件头、图像/颜色表数据、开发者自定义区域、扩展区域和文件尾。其中V2.0版本的文件头和图像/颜色表数据与V1.0保持一致。

下面主要对TGA扩展文件结构(v2.0)的各个部分进行分析。

文件头(TGA File Header)

该部分依次由图像描述信息字段长度、颜色表类型、图像类型、颜色表规约和图像说明五个字段组成,总计18字节,各个字段的长度和取值意义如下表。

字段 取值意义
图像描述信息字段长度 ID length(1字节) 这个字段规定了包含在Image ID字段中的字节数,取值范围为0~255。值为0则表示在这个文件中没有图像信息字段。
颜色表类型 Color Map Type(1字节) 当前已定义的有两个值0或者1。0 表示没有颜色表(color map),1 表示颜色表存在。
图像类型 Image Type(1字节) 0——没有图像数据;1——未压缩,颜色表映射图像;2——未压缩,真彩图像;3——未压缩,黑白图像;9——行程编码,颜色表映射图像;10——行程编码,真彩图像;11——行程编码,黑白图像。
颜色表规约 Color Map Specification(5字节) 字段4.1(2字节)颜色表首地址(First Entry Index):第一个颜色表表项的索引,是装载颜色表的首地址。字段4.2(2字节)颜色表长度(Color map Length): 颜色表表项的数量.字段4.3(1个字节)颜色表表项大小(Color map Entry Size): 每个表项占用的位数,典型的值有15,16,24,或者32位。如果颜色表类型字段为0,则表示不存在颜色表,则5个字节应该被设置为0,这些字节需要写入文件中。
图像规约Image Specification(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)0-3位,规定了每个像素属性位的数量。4-5位,这些位用于表示像素数据从文件发送到屏幕的顺序,位4表示从左到右,位5表示从上到下。

文件头描述了图像存储的基本信息,应用程序可依据该部分字段值读写图像数据。

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

依次由图像信息字段(Image ID)、颜色表数据(Color Map Data)和图像数据(Image Data)三部分组成。

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

三个字段均为可变长字段,用于存储图片的图像信息。

开发者自定义区域(Developer Area)

包含开发者定义字段列表和开发者字典(用于存储开发者定义字段的值),该区域为开发者扩展该文件格式提供接口,以便存储额外的信息。
开发者字段的尺寸和格式完全是由开发者规定的,读取包含这些信息的文件时,完全可以忽略它们,除非理解这些内容。

扩展区域(Extension Area)

由扩展区域大小、作者姓名、作者注释、日期/时间、工作名称/ID、工作累计耗时、编辑软件的名称、编辑软件的版本、关键颜色、像素宽高比、灰度值、颜色校正表偏移量、缩略图偏移量、扫描线表偏移量、alpha通道类型、扫描线表、缩略图图像数据和颜色校正表组成。
为Truevision公司定义的标准扩展功能,以提供更多的图像附加信息。

文件尾(TGA File Footer)

最后26个字节为文件尾,该区域的格式如下所示:

  • Bytes 0-3:拓展区域偏移量

  • Bytes 4-7:开发者区域偏移量

  • Bytes 8-23:签名

  • Byte 24:ASCII码”.”

  • Byte 25:二进制数0x00。

三、实例分析

用格式工厂将下图转为tga格式后用FlexHEX分析得到如下数据。

文件头(TGA File Header)

  • 无图像信息字段
  • 没有使用颜色表
  • 压缩的真彩色图像
  • 图像左下角的水平和垂直坐标都为0
  • 图像宽高为1152*2048
  • 像素深度24bit

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

  • 无图像信息字段,故没有Image ID字段
  • 无颜色表类型字段,故没有Color Map Data字段
  • Image Data字段的数据含义是:各个像素的BGR值。

文件尾(TGA File Footer)

  • 没有Extension Area
  • 没有Developer Area
  • 存在字符串为TRUEVISION-XFILE的签名,即为v2.0的TGA扩展格式文件
  • 最后的倒数第2个字节:TGA文件结束字符——ASCII码”.”
  • 最后一个字节:文件结束符——二进制数0x00

对TGA图像文件格式的理解相关推荐

  1. [摘录]TGA图像文件格式资料

    TGA图像文件格式资料   发表日期:2007-01-18 作者:[转贴] 出处: 根据david mcduffe编写的TGA文件格式资料翻译而成 本文档是为满足许多对 TGA 图像格式的了解需要而创 ...

  2. TGA图像文件格式解析

    文章目录 一.TGA图像文件格式概述 1. 图像格式 2. 结构 3. 压缩 二.TGA格式解析(含实例分析) 三.总结 1. 六种图像类型 2. tga应用模式 一.TGA图像文件格式概述 1. 图 ...

  3. TGA图像文件格式资料

    根据david mcduffe编写的TGA文件格式资料翻译而成 本文档是为满足许多对 TGA 图像格式的了解需要而创建的.本文摘录自truevision 技术指南的附录 C,如果 需要更进一步的信息, ...

  4. TGA图像文件格式分析

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

  5. 2.1 TGA图像文件格式解析

    2.1 TGA图像文件格解析 作业内容:使用FlexHEX对下图的TGA格式的图像进行文件格式解析. 简介 TGA(Truevision Graphics Adapter)文件格式,通常又称为Targ ...

  6. [原]BMP位图 转换 透明 TGA图像 - 增加 alpha通道 -TGA文件格式初解

    最近做一个将文字转换为图片做视频叠加字幕的软件,大家都知道VB的图像控件Picture Box只能输出BMP格式位图,自然我的软件是用Picture Box做图像输出的也不例外,但是客户要求要输出带a ...

  7. 计算机常用图像文件格式,常用的图像文件格式

    常用的图像文件格式介绍 常用的图像文件格式 图像的文件格式决定了图像数据的存储内容和存储方式,以及文件是否与一些应用程序兼容,另外还涉及到如何与其他程序交换数据等.我们现在来列举一些常用的图像文件格式 ...

  8. Python PIL支持的图像文件格式

    Python PIL 支持的图像文件格式: BMP BUFR (identify only) CUR (read only) DCX (read only) EPS (write-only) FITS ...

  9. 图形图像文件格式分类

    图形图像文件大致上可以分为两大类:一类为位图文件:另一类称为描绘类.矢量 类或面向对象图形图像文件.前者以点阵形式描述图形图像,后者是以数学方法描 述的一种由几何元素组成的图形图像.一般说来,后者对图 ...

最新文章

  1. beangle commons 4.0.0 release
  2. 网络加速和优化控制常用管理
  3. 【NLP】ACL 2010-2020研究趋势总结
  4. 如何检查某个用户是否具有某个权限对象上定义的某种权限
  5. 【转】了解SQL Server触发器及触发器中的事务
  6. 现在女生的床真的都是这样吗?
  7. 实体类?Dao接口?Mapper映射文件?都别写了!!!用这种方法就可以
  8. COM, COM+ and .NET 的区别
  9. php7引用计数,PHP7 引用计数 读书笔记
  10. 设置ORACLE_HOME环境变量
  11. Spark SQL整合Hive
  12. zabbix无效监控项_zabbix4.2zabbix自定义监控项、添加新的监控项
  13. 软路由WIFI的方案,pcie网卡和硬件无线AP那种最稳定靠谱?
  14. deeplabv3+ 跑 cityscape 数据集
  15. hourglass论文_Hourglass模块 网络结构 代码
  16. ROS2/DDS/QoS/主题的记录
  17. Python +SQL Server 框架及返回结果处理
  18. Decision-making Strategy on Highway for Autonomous Vehicles using Deep Reinforcement Learning
  19. TeamPlan小组工作计划管理系统想法
  20. 使用python实现智能浇筑方案

热门文章

  1. gitolite的原理与设置
  2. Windows Mobile手机常见CPU介绍
  3. 计算某点(L,B)沿子午线到赤道的弧长(公式和java源码)
  4. 农行金融大脑再升级,百度云助力智能金融落地开花
  5. 如何在matlab中高效优雅地绘制论文插图?
  6. UESTC_方老师的分身 II CDOJ 915
  7. 《计算机工程与应用》投稿模版
  8. 让Mplayer或SMplayer成为网络电视客户端(安装Mplayer以Fedora为例)
  9. BBdoc、anytxt、filelocator测试效果,不知道是不是国外软件对中文支持不好,结果差距比较大
  10. 南非世界杯 小组赛 阿根廷vs尼日利亚