天天看點

TGA檔案格式分析和圖檔舉例

首先據查閱資料顯示:

TGA擴充檔案結構(v2.0)由五部分組成:檔案頭、圖像/顔色表資料、開發者自定義區域、擴充區域和檔案尾。其中V2.0版本的檔案頭和圖像/顔色表資料與V1.0保持一緻。

1、檔案頭(TGA File Header):由圖像描述資訊字段長度、顔色表類型、圖像類型、顔色表說明和圖像說明五個字段組成,總計18位元組,描述了圖像存儲的基本資訊,應用程式可依據該部分字段值讀寫圖像資料。

(1)圖像資訊字段長度(ID length)– 字段1(1個位元組);

(2)顔色表類型(Color Map Type)– 字段2(1個位元組);

0——沒有顔色表(color map);

1——使用顔色表;

2-127——Truevision保留使用;

128-255——用于開發者的應用中

(3)圖像類型(Image Type)– 字段3(1個位元組);

0——沒有圖像資料;

1——未壓縮的顔色表圖像;

2——未壓縮的真彩色圖像;

3——未壓縮的黑白圖像;

9——RLE(行程壓縮算法)壓縮的顔色表圖像;

10——RLE壓縮的真彩色圖像;

11——RLE壓縮的黑白圖像;

12-127——Truevision保留使用;

128-255——用于開發者的應用中。

(4)顔色表規約(Color Map Specification) – 字段 4(5位元組):這個字段和它的子字段描述圖像中使用的顔色表,如果顔色表類型字段為0,則表示不存在顔色表,則5個位元組應該被設定為0,這些位元組需要寫入檔案中。

字段4.1(2位元組)顔色表首位址(First Entry Index):第一個顔色表表項的索引,是裝載顔色表的首位址。

字段4.2(2位元組)顔色表長度(Color map Length): 顔色表表項的數量.字段4.3(1個位元組)顔色表表項大小(Color map Entry Size): 每個表項占用的位數,典型的值有15,16,24,或者32位。

(5)圖像規約(Image Specification)– 字段 5(10個位元組):這個字段和它的子字段描述了圖像的螢幕位置,尺寸和像素深度。

字段5.1(2個位元組) – 圖像X位置的起始位置(X-origin of Image): 圖像左下角的水準坐标。

字段5.2(2個位元組) –圖像Y位置的起始位置(Y-origin of Image): 圖像左下角的垂直坐标。

字段5.3(2個位元組) –圖像寬度(Image Width)

字段5.4(2個位元組) –圖像高度(Image Height)

字段5.5(1個位元組) –像素深度(Pixel Depth):這個字段表示每個像素占用的位數,通常的值是8,16,24,32位。

字段5.6(1個位元組) –圖像描述符(Image Descriptor)

2、圖像/顔色表資料(Image/Color Map Data):由圖像描述資訊(可選)、顔色表資料和圖像資料三部分組成,用于存儲圖檔的圖像資訊。

(1)圖像資訊字段(Image ID)– 字段 6(可變長):存儲了圖像的身份資訊(Identifying Information)這個字段最長為255個位元組,Field 1字段規定了它的長度。

(2)顔色表資料(Color Map Data) –字段7(可變長):這個變長字段包含了顔色表資訊(LUT資料),字段4.3和字段4.2共同規定了字段7的長度。

(3)圖像資料(Image Data)– 字段 8(可變長):這個字段包含Width*Height個像素,每個像素的格式如下所示:(1)用僞彩色表示,則是一個顔色圖的一個索引号;(2)真彩圖,則是屬性,紅綠,藍順序的資料;(3)用調配色表示,就是獨立的顔色表索引。

3、開發者自定義區域(Developer Area):包含開發者定義字段清單和開發者字典(用于存儲開發者定義字段的值),該區域為開發者擴充該檔案格式提供接口,以便存儲額外的資訊。

開發者資料(Developer Data) – 字段 9(可變長)

4、擴充區域(Extension Area):由擴充區域大小、作者姓名、作者注釋、日期/時間、工作名稱/ID、工作累計耗時、編輯軟體的名稱、編輯軟體的版本、關鍵顔色、像素寬高比、灰階值、顔色校正表偏移量、縮略圖偏移量、掃描線表偏移量、alpha通道類型、掃描線表、縮略圖圖像資料和顔色校正表組成,為Truevision公司定義的标準擴充功能,以提供更多的圖像附加資訊。

5、檔案尾(TGA File Footer):由擴充區域偏移量、開發者目錄偏移量和TGA檔案擴充格式簽名三部分組成,用于驗證TGA檔案擴充格式,并可以确定擴充區域和開發者字典的位置。

**

TGA檔案格式分析

**

TGA檔案格式分析和圖檔舉例

檔案由Photoshop 導出為TGA格式

TGA檔案格式分析和圖檔舉例

前18位元組:

無圖像資訊字段

沒有使用顔色表(顔色表規約字段為0)

圖像格式為未壓縮的真彩圖像

圖像左下角的水準和垂直坐标均為0

圖像寬度為400,高度為380 即圖像為400*380

像素深度 24bit

TGA檔案格式分析和圖檔舉例

無圖像資訊字段,故無Image ID字段

無顔色表類型字段,故無Color Map Data字段

19 - 456018 位元組為圖像資料字段

則此字段中的資料表示各個像素的RGB值,共400380個像素,即圖像資料字段共有400380*3=456000個位元組,除去頭部18位元組,記憶體與檔案格式吻合。

TGA檔案格式分析和圖檔舉例

末尾26位元組尾部

無Extension Area

無Developer Area

存在字元串為TRUEVISION-XFILE的簽名,為v2.0的TGA擴充格式檔案

(每一張TGA 2.0格式下圖檔固定值)

最後的倒數第2個位元組:TGA檔案結束字元——ASCII碼 ”.”

最後一個位元組:檔案結束符為0

繼續閱讀