Truevision TGA (.tga)

Truevision 标准

Truevision TGA (Targa) 是为具有划时代意义的 TARGA 视频捕捉板而创建的历史光栅图形格式,成为了 20 世纪 90 年代和 2000 年代最具决定性的 3D 纹理和视频游戏素材格式。

将 TGA 转换为 PNG

免费的浏览器端 TGA 转 PNG 转换器。在您的设备上即时转换文件。

检查与元数据

操作系统和文件分析器通过检查开头的二进制字节序列来识别 TGA 文件:

选择或将文件拖放到此处

100% 浏览器端私密转换 - 文件绝不会离开您的设备

或粘贴 Ctrl+V
零网络传输隐私保证: 上传至外部服务器的数据为 0 字节。所有处理均在您的浏览器沙箱中本地完成。

字节级文件头签名 (Magic Bytes)

操作系统和文件分析器通过检查开头的二进制字节序列来识别 TGA 文件:

十六进制签名 (偏移量 0):

00 00 02 00 00 00 00 00

ASCII 表示形式: ........ (Footer: TRUEVISION-XFILE)

标准化: Truevision TGA File Format Specification v2.0

技术规格

容器架构18-byte fixed header followed by image ID, color map, raster pixel data, and optional v2.0 footer
压缩方式Uncompressed raw scanlines or lossless packet-based Run-Length Encoding (RLE)
字节序Little-Endian (Intel x86)
色彩空间Device RGB
通道与结构8-bit grayscale, 16-bit RGB (5-5-5-1), 24-bit RGB, or 32-bit RGBA with alpha
最大尺寸65,535 x 65,535 pixels (16-bit dimension fields)
透明度Full 8-bit alpha channel transparency (in 32-bit mode) or 1-bit alpha (in 16-bit mode)
流式传输与渐进式加载Sequential scanline streaming; supports top-to-bottom or bottom-to-top orientation

技术对比矩阵:TGA 对比同类产品

技术属性TGA (当前)PNGBMPDDS
视频游戏纹理用途通用的 90 年代至 2000 年代传统标准现代 2D UI 和网页素材Windows 传统位图DirectX 现代压缩 GPU 格式
透明通道支持干净的 8 位透明通道(32位模式)干净的 8 位透明通道有限的 32 位透明通道DXT/BC 压缩透明通道
压缩算法无压缩或包 RLE无损 Deflate(缩小约 60%)无压缩 / RLE直接 GPU 块压缩 (BC1-BC7)
签名位置26字节页脚("TRUEVISION-XFILE.")第 0 字节文件头("‰PNG....")第 0 字节文件头("BM")第 0 字节文件头("DDS ")

常见损坏模式与十六进制恢复指南

图像渲染上下颠倒或水平镜像。

根本原因: 解码器对图像描述符位(第 17 字节中的第 4 位和第 5 位)读取错误或反转。

恢复方法: 切换垂直/水平翻转标志,或使用 File2File TGA 转换器进行转换。

安全分析与解析器攻击向量

TGA 解码器处理基于包的 RLE 流,其中格式错误的运行长度计数可能会触发越界堆写入。

已知攻击向量

  • RLE 包长度超出目标扫描线缓冲区边界。
  • 读取超出声明的颜色表深度的颜色表条目时发生缓冲区溢出。
  • 在分配 width * height * (bpp / 8) 内存缓冲区期间发生整数溢出。

防御性最佳实践:

历史渊源与里程碑

1998Valve 的《半条命》和 id Software 的《雷神之锤 II》将 TGA 推广为标准的视频游戏纹理素材格式。
1989Truevision 发布 TGA 文件格式 v2.0,增加了标准化的 26 字节"TRUEVISION-XFILE"页脚。
1984Truevision 推出 TARGA(Truevision 高级光栅图形适配器)视频卡和 TGA 格式。

核心优势与特点

  • 极其简单的解码架构允许以最小的 CPU 开销直接加载 GPU 纹理内存。
  • 可靠的 32 位 RGBA 透明通道支持使其成为视频游戏纹理、精灵和贴花的行业最爱。
  • 支持无压缩和轻量级无损 RLE 压缩。

技术局限与劣势

  • 比 DDS、KTX2 或 PNG 等现代压缩纹理格式占用更大的文件空间。
  • 缺乏原生的色彩配置文件管理(没有嵌入的 ICC 配置文件)。
  • 最初的 v1.0 TGA 文件在第 0 字节处缺少标准化的魔数(通过头字段和页脚进行识别)。

趣味技术冷知识

  • TGA 的创建是为了在标准 PC 显示器甚至无法显示 24 位颜色之前,在 IBM PC 上捕获广播视频帧。
  • TGA 2.0 文件非常独特,因为它们的魔数签名("TRUEVISION-XFILE.")存储在文件的最末尾而不是开头。
  • 几乎每一个 20 世纪 90 年代主流的 3D 游戏引擎(从 id Tech 到虚幻引擎)都直接从 .TGA 文件中加载纹理素材。

常见技术问题

为什么游戏开发人员喜欢 TGA 格式?

因为 TGA 文件是未压缩的或简单的 RLE,允许游戏引擎将 32 位纹理和透明度通道直接加载到显存中,而无需缓慢解压。

如何在字节 0 处没有魔数(magic bytes)的情况下识别 TGA 文件?

现代 TGA 2.0 文件在文件的最后 26 个字节中以 ASCII 字符串“TRUEVISION-XFILE.”结尾。

如何将 TGA 转换为 PNG?

您可以使用 File2File.app 直接在浏览器中将 TGA 纹理转换为高质量的 PNG 或 JPG 图像,且无需传输任何数据。