Truevision TGA (.tga)
Truevision 標準Truevision TGA (Targa) 是一種點陣圖格式,與 Truevision 的 TARGA 視訊擷取卡相關,並用於某些圖形與遊戲資產工作流程中,特別是在 1990 年代和 2000 年代。
將 TGA 轉換為 PNG
免費的瀏覽器端 TGA 轉 PNG 轉換器。在您的裝置上即時轉換檔案。
檢查與中繼資料
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 TGA 檔案:
位元組層級標頭簽章(檔案簽章)
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 TGA 檔案:
十六進位簽章(偏移量 0):
無固定簽章(TGA 標頭欄位會變動)ASCII 表示法: 無固定 ASCII 簽章
標準化: Truevision TGA File Format Specification v2.0
技術規格
| 容器架構 | 18 位元組固定標頭,後接圖片 ID、色彩對應表、點陣圖像素資料,以及選用的 v2.0 結尾 |
| 壓縮 | 未壓縮的原始掃描線或無損的封包式執行長度編碼(RLE) |
| 位元組序 | 小端序(Intel x86) |
| 色彩空間 | 裝置 RGB |
| 色版與結構 | 8 位元灰階、16 位元 RGB (5-5-5-1)、24 位元 RGB,或帶有 alpha 的 32 位元 RGBA |
| 最大尺寸 | 65,535 x 65,535 像素(16 位元尺寸欄位) |
| 透明度 | 完整的 8 位元 alpha 通道透明度(在 32 位元模式下)或 1 位元 alpha(在 16 位元模式下) |
| 串流與漸進式 | 循序掃描線串流;支援由上到下或由下到上的方向 |
技術比較矩陣:TGA 對比競爭格式
| 技術屬性 | TGA (目前) | PNG | BMP | DDS |
|---|---|---|---|---|
| 電子遊戲材質使用 | 被某些 1990 年代至 2000 年代的遊戲引擎使用 | 現代 2D 使用者介面與網頁資產 | Windows 舊版點陣圖 | DirectX 現代壓縮 GPU 格式 |
| Alpha 通道支援 | 乾淨的 8 位元 alpha(32 位元模式) | 乾淨的 8 位元 alpha | 受限的 32 位元 alpha | DXT/BC 壓縮 alpha |
| 壓縮演算法 | 未壓縮或封包 RLE | 無損 Deflate 壓縮;節省空間會因圖片內容而異 | 未壓縮 / RLE | 直接 GPU 區塊壓縮(BC1-BC7) |
| 簽章位置 | 26 位元組結尾('TRUEVISION-XFILE.') | 第 0 位元組標頭('‰PNG....') | 第 0 位元組標頭('BM') | 第 0 位元組標頭('DDS ') |
常見損壞模式與十六進位修復指南
圖片上下顛倒或水平鏡像顯示。
根本原因: 圖片描述元位元(第 17 位元組中的第 4 和第 5 位元)被解碼器誤讀或反轉。
修復: 切換垂直/水平翻轉旗標,或使用 File2File.app TGA 轉換器進行轉換。
安全性分析與解析器攻擊向量
TGA 解碼器會處理基於封包的 RLE 資料流,其中格式錯誤的執行長度計數可能會觸發超出範圍的堆積寫入。
已知攻擊向量
- RLE 封包長度超過目的地掃描線緩衝區邊界。
- 讀取超出宣告色彩對應表深度的色彩對應表項目時發生緩衝區溢位。
- 在 width * height * (bpp / 8) 記憶體緩衝區配置期間發生整數溢位。
防禦最佳實務: 在 RLE 封包解開期間強制執行嚴格的每條掃描線邊界檢查。
歷史起源與里程碑
1998TGA 在遊戲美術管線中變得很常見,因為它支援直接色彩和 alpha 資料;包括 id Software 的 Quake II 在內的遊戲引擎都將其用於材質。
1989Truevision 發布 TGA File Format v2.0,新增了標準化的 26 位元組「TRUEVISION-XFILE」結尾。
1984Truevision 推出 TARGA (Truevision Advanced Raster Graphics Adapter) 視訊卡與 TGA 格式。
主要優勢與優點
- 極為簡單的解碼架構允許直接載入 GPU 材質記憶體,且 CPU 負荷極低。
- TGA 可以儲存 24 位元 RGB 或 32 位元 RGBA 資料(包含 alpha),這使得它在某些遊戲材質、精靈圖和貼花工作流程中非常有用。
- 支援未壓縮以及輕量級的無損 RLE 壓縮。
技術限制與缺點
- 檔案大小比現代壓縮材質格式(如 DDS、KTX2 或 PNG)更大。
- 缺乏原生色彩描述檔管理(無嵌入的 ICC 描述檔)。
- 原始的 v1.0 TGA 檔案在第 0 位元組缺少標準化的檔案簽章(透過標頭欄位與結尾辨識)。
有趣的技術冷知識
- TGA 的建立是為了在標準 PC 螢幕甚至無法顯示 24 位元色彩之前,在 IBM PC 上擷取廣播視訊影格。
- TGA 2.0 檔案很獨特,因為其檔案簽章('TRUEVISION-XFILE.')儲存在檔案最末端,而非開頭。
- TGA 被 1990 年代的某些遊戲引擎用於材質,包括來自 id Software 和 Valve 的作品。
常見技術問題
為什麼遊戲開發者熱愛 TGA 格式?
因為 TGA 檔案是未壓縮的或使用簡單的 RLE,允許遊戲引擎將 32 位元材質與 alpha 透明度直接載入視訊記憶體中,而無需進行緩慢的解壓縮。
如果第 0 位元組沒有檔案簽章,該如何識別 TGA 檔案?
現代的 TGA 2.0 檔案在檔案最後 26 位元組中以 ASCII 字串 'TRUEVISION-XFILE.' 結尾。
如何將 TGA 轉換為 PNG?
TGA 檔案可以包含遊戲材質所使用的 alpha 通道。轉換為 PNG 以保留透明度,或轉換為 JPEG 以獲得較小的不透明圖片;此轉換器在您的瀏覽器中執行。