Truevision TGA (.tga)

Truevision 標準

Truevision TGA (Targa) 是一種點陣圖格式,與 Truevision 的 TARGA 視訊擷取卡相關,並用於某些圖形與遊戲資產工作流程中,特別是在 1990 年代和 2000 年代。

將 TGA 轉換為 PNG

免費的瀏覽器端 TGA 轉 PNG 轉換器。在您的裝置上即時轉換檔案。

檢查與中繼資料

作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 TGA 檔案:

在這裡選擇或拖放檔案

私密 - 檔案絕不會離開您的裝置

或貼上 Ctrl+V
零網路傳輸隱私保證: 0 位元組上傳至外部伺服器。所有處理皆在本機瀏覽器沙箱中進行。

位元組層級標頭簽章(檔案簽章)

作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 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 (目前)PNGBMPDDS
電子遊戲材質使用被某些 1990 年代至 2000 年代的遊戲引擎使用現代 2D 使用者介面與網頁資產Windows 舊版點陣圖DirectX 現代壓縮 GPU 格式
Alpha 通道支援乾淨的 8 位元 alpha(32 位元模式)乾淨的 8 位元 alpha受限的 32 位元 alphaDXT/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 以獲得較小的不透明圖片;此轉換器在您的瀏覽器中執行。