Truevision TGA (.tga)
Truevision 標準TGA(Targa)はTruevisionのTARGAビデオキャプチャボードに関連するラスター形式で、特に1990年代から2000年代にかけて、一部のグラフィックスやゲーム素材の制作工程で使われました。
TGA を PNG に変換
無料のブラウザ内 TGA から PNG へのコンバーター。お使いのデバイスでファイルを即座に変換します。
調査とメタデータ
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してTGAファイルを識別します:
バイトレベルのヘッダーシグネチャ (マジックバイト)
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してTGAファイルを識別します:
16進数シグネチャ(オフセット0):
固定シグネチャなしASCII表現: 固定シグネチャなし
標準化: Truevision TGAファイル形式仕様 v2.0
技術仕様
| コンテナアーキテクチャ | 18バイトの固定ヘッダーに続き、画像ID、カラーマップ、ラスターピクセルデータ、オプションのv2.0フッターを格納 |
| 圧縮 | 非圧縮の生走査線、またはパケット単位の可逆ランレングス符号化(RLE) |
| バイトエンディアン | リトルエンディアン(Intel x86) |
| 色空間 | デバイスRGB |
| チャンネルと構造 | 8ビットグレースケール、16ビットRGB(5-5-5-1)、24ビットRGB、またはアルファ付き32ビットRGBA |
| 最大寸法 | 65,535 x 65,535ピクセル(16ビット寸法フィールド) |
| 透過性 | 32ビットモードでは完全な8ビットアルファ透明度、16ビットモードでは1ビットアルファに対応 |
| ストリーミングとプログレッシブ | 走査線を順次ストリーミングし、上から下または下から上の方向に対応 |
技術比較表:TGAと競合製品
| 技術属性 | TGA (現在) | PNG | BMP | DDS |
|---|---|---|---|---|
| ビデオゲームテクスチャでの使用 | 1990~2000年代の一部ゲームエンジンで使用 | 最新の2D UIおよびWebアセット | Windowsレガシービットマップ | DirectXの最新圧縮GPU形式 |
| アルファチャンネルのサポート | クリーンな8ビットアルファ(32ビットモード) | クリーンな8ビットアルファ | 制限付き32ビットアルファ | DXT/BC圧縮アルファ |
| 圧縮アルゴリズム | 非圧縮またはパケットRLE | 可逆Deflate圧縮。削減幅は画像内容によって異なる | 非圧縮 / RLE | 直接GPUブロック圧縮(BC1-BC7) |
| 署名の場所 | 26バイトのフッター(「TRUEVISION-XFILE.」) | バイト0のヘッダー(「‰PNG....」) | バイト0のヘッダー(「BM」) | バイト0のヘッダー(「DDS 」) |
一般的な破損モードと16進数リカバリガイド
画像が上下逆または水平方向に反転して描画される。
根本原因: 画像記述子のビット(バイト17のビット4および5)がデコーダーによって誤読または反転されている。
復旧: 垂直/水平反転フラグを切り替えるか、File2File.app TGAコンバーターを使用して変換します。
セキュリティ分析とパーサー攻撃ベクトル
TGAデコーダーはパケットベースのRLEストリームを処理するため、不正なランレングス数によって領域外ヒープ書き込みを引き起こす可能性があります。
既知の攻撃ベクター
- 宛先スキャンラインバッファの境界を超えるRLEパケット長。
- 宣言されたカラーマップ深度を超えるカラーマップエントリを読み取る際のバッファオーバーフロー。
- 幅 × 高さ × (bpp / 8) のメモリバッファ割り当て中の整数オーバーフロー。
防御的ベストプラクティス: RLEパケットの展開中に、スキャンラインごとの厳格な境界チェックを適用します。
歴史的背景とマイルストーン
主なメリット
- 極めて単純なデコードアーキテクチャにより、最小限のCPUオーバーヘッドでGPUテクスチャメモリへの直接ロードが可能です。
- TGAはアルファチャンネルを含む24ビットRGBまたは32ビットRGBAデータを保存でき、一部のゲーム用テクスチャ、スプライト、デカール制作で役立ちました。
- 非圧縮と軽量なロスレスRLE圧縮の両方をサポートしています。
技術的な制限とデメリット
- DDS、KTX2、PNGなどの最新の圧縮テクスチャ形式と比較してファイルサイズが大きくなります。
- ネイティブなカラープロファイル管理が欠如しています(埋め込みICCプロファイルなし)。
- オリジナルのv1.0 TGAファイルには、バイト0に標準化されたマジックバイトがありません(ヘッダーフィールドとフッターで識別されます)。
興味深い技術トリビア
- TGAは、標準的なPCモニターが24ビットカラーを表示できるようになる前、IBM PCで放送用ビデオフレームをキャプチャするために作成されました。
- TGA 2.0ファイルは、マジック署名(「TRUEVISION-XFILE.」)がファイルの先頭ではなく最後尾に格納されているという特徴があります。
- id SoftwareやValveの作品を含む一部の1990年代のゲームエンジンは、テクスチャにTGAを使っていました。
よくある技術的な質問
なぜゲーム開発者はTGA形式を好んだのですか?
TGAファイルは非圧縮またはシンプルなRLEであり、ゲームエンジンが低速な解凍処理を行うことなく、32ビットのテクスチャやアルファ透明度をビデオメモリに直接読み込むことができたためです。
バイト0にマジックバイトがないTGAファイルをどのように識別しますか?
現在のTGA 2.0ファイルでは、ファイル末尾の26バイトにASCII文字列「TRUEVISION-XFILE.」が含まれています。
TGAをPNGに変換するにはどうすればよいですか?
TGAファイルにはゲームテクスチャで使われるアルファチャンネルが含まれる場合があります。透明度を保つにはPNGに、小さな不透明画像にするにはJPEGに変換してください。このコンバーターはブラウザー内で動作します。