清理 TGA(Truevision TARGA)文件
15 一种存在真正罕见检测难题的格式
TGA(Truevision TARGA)是一种较老的格式,如今在游戏开发和视觉特效贴图工作流程中依然十分活跃。它完全不涉及
本站针对照片所讨论的相机/GPS 元数据风险——TGA 不是手机会生成的东西——但它确实存在一个真实、具体的技术特点,
如果您曾经好奇为什么一个 .tga 文件在这里可能会被拒绝,这一点值得了解。
深入了解:为什么经典 TGA 无法像本站其他任何格式那样被识别
本站其他任何格式都是通过文件最开头的魔数字节签名来识别的——PNG 的 8 字节头部、JPEG 的
FF D8 FF,等等。经典 TGA 完全没有这样的东西:它的文件头只是一串数值字段(图像尺寸、色深、
原点),完全没有任何签名字节,这意味着一个通用解码器根本没有可靠的、基于内容的方法,来区分一个有效的
TGA 文件和恰好在正确位置有着正确字节长度的随机二进制数据——这正是本站整体做法所拒绝掩盖、转而依赖文件
扩展名来解决的那种含糊性。实际的解决办法是:TGA 2.0 增加了一个可选的文件尾部——文件末尾附近字面意义上
的 ASCII 文本 TRUEVISION-XFILE.——这确实是一个真实、明确的签名。本工具刻意只识
别携带这一尾部标记的 TGA 文件。没有它的旧版 TGA 1.0 文件会被当作无法识别而拒绝,而不是被猜测性地接受,
即使这意味着某些真实有效、年代久远的 TGA 文件也不会被接受——这是同一条"永远不要信任扩展名"原则的一贯
应用,即便这在边缘情况下会牺牲掉一些合法文件。
如果您的 TGA 文件被拒绝了
最可能的解释正是上面所说的那种情况:一个没有 TGA 2.0 文件尾部的 TGA 1.0 文件,本工具无法以真正的可靠性将 其与任意字节区分开来——这不是一个 bug,也不是这个文件本身的问题。从生成它的工具中重新导出该文件,或者将其 转换为一种拥有真实签名的格式(PNG 是一个安全的默认选择),都能完全绕开这个问题,无论哪种方式,它随后都会 经历对比页面所描述的同一套完整解码与重建保证。