Truevision TGA (.tga)
Truevision 标准Truevision TGA (Targa) 是为具有划时代意义的 TARGA 视频捕捉板而创建的历史光栅图形格式,成为了 20 世纪 90 年代和 2000 年代最具决定性的 3D 纹理和视频游戏素材格式。
将 TGA 转换为 PNG
免费的浏览器端 TGA 转 PNG 转换器。在您的设备上即时转换文件。
检查与元数据
操作系统和文件分析器通过检查开头的二进制字节序列来识别 TGA 文件:
字节级文件头签名 (Magic Bytes)
操作系统和文件分析器通过检查开头的二进制字节序列来识别 TGA 文件:
十六进制签名 (偏移量 0):
00 00 02 00 00 00 00 00ASCII 表示形式: ........ (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 (当前) | PNG | BMP | DDS |
|---|---|---|---|---|
| 视频游戏纹理用途 | 通用的 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) 内存缓冲区期间发生整数溢出。
防御性最佳实践:
历史渊源与里程碑
核心优势与特点
- 极其简单的解码架构允许以最小的 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 图像,且无需传输任何数据。