TGA格式是Truevision公司設計並負責解釋的圖像格式。TGA也包含了多種變體,TGA檔案的第三個位元組用來區別不是TGA的檔案。
基本介紹
- 中文名:TGA格式
- 性質:圖像格式
- 單位:Truevision公司
- 特徵:多種變體
該位元組的值(二進制整數)及對應的檔案類型如下。
l 0:檔案中沒有圖像數據。
l 1:未壓縮的,顏色表圖像。
l 2:未壓縮的,RGB圖像。
l 3:未壓縮的,黑白圖像。
l 9:遊程長度(Runlength)編碼的顏色表圖像。
l 10:遊程長度(Runlength)編碼的RGB圖像。
l 11:壓縮的,黑白圖像。
l 32:使用Huffman、Delta和Runlength編碼的顏色表圖像。
l 33:使用Huffman、Delta和Runlength編碼的顏色映射圖像,四叉樹類型處理
1. 數據類型1:未壓縮的顏色表(color-mapped)圖像TGA未壓縮顏色表圖像格式的說明如表1.1所示。
表1.1 TGA未壓縮顏色表圖像格式說明
偏移(位元組) | 長度(位元組) | 描述 |
0 | 1 | 圖像信息欄位(見本子表的後面)的字元數。本欄位是1位元組無符號整型,指出了圖像格式區別欄位長度,其取值範圍是0到255,當它為0時表示沒有圖像的信息欄位 |
1 | 1 | 顏色表的類型。該欄位為表示對應格式1的圖像而包含一個二進制1 |
2 | 1 | 圖像類型碼。該欄位總為1,這也是此類型為格式1的原因 |
3 | 5 | 顏色表規格,顏色表首址 |
3 | 2 | 顏色表首元表項的整型(低位-高位)索引 |
5 | 2 | 顏色表的長度。顏色表的表項總數,整型(低位-高位) |
7 | 1 | 顏色表表項的位(bit)數。16代表16位TGA、24代表24位TGA、32代表32位TGA |
8 | 10 | 圖像規格 |
8 | 2 | 圖像X坐標的起始位置。圖像左下角X坐標的整型(低位-高位)值 |
10 | 2 | 圖像Y坐標的起始位置。圖像左下角Y坐標的整型(低位-高位)值 |
12 | 2 | 圖像寬度。以像素為單位,圖像寬度的整型(低位-高位)值 |
14 | 2 | 圖像高度。以像素為單位,圖像高度的整型(低位-高位)值 |
16 | 1 | 圖像每像素存儲占用位(bit)數 |
17 | 1 | 圖像描述符位元組 bits 3~0:每像素的屬性位(bit)數 bit 4:保留,必須為0 bit 5:螢幕起始位置標誌 0:原點在左下角 1:原點在左上角 Truevision圖像必須為0bits 7~6:交叉數據存儲標誌 00:無交叉 01:兩路奇/偶交叉 10:四路交叉 11:保留 |
18 | 可變 | 圖像信息欄位。包含一個自由格式的,長度是圖像記錄塊偏移0處的位元組中的值。它常常被忽略(即偏移0處值為0),其最大可以含有255個字元。如果需要存儲更多信息,可以放在圖像數據之後 |
(續表)
偏移(位元組) | 長度(位元組) | 描述 |
可變 | 可變 | 顏色表數據。起始位置由前一個欄位的大小決定;其長度由單項數據大小和數據項數目決定(在前面相應的說明欄位中給出),每項是2位元組、3位元組或4位元組,位元組中沒有使用的位(bit)被認為是屬性位 (1)4位元組表項中,位元組1表示BLUE,位元組2表示GREEN,位元組3表示RED,位元組4表示屬性 (2)3位元組表項中各位元組依次對應BLUE、GREEN、RED (3)2位元組表項中,兩個位元組分解成如下形式:arrrrrgg gggbbbbb,但是,由於低位在前,高位在後的存儲順序,從檔案中讀出表項時,將先讀入gggbbbbb而後讀入arrrrrgg,a表示屬性位 |
可變 | 可變 | 圖像數據欄位。該欄位給出了(高度)×(寬度)個顏色表項索引,每個索引以整數個位元組的形式存儲(典型的例子如1或2個位元組)所有的數據都沒有符號,對於2位元組表項而言,低位位元組是先存儲的 |
2. 數據類型2:未壓縮的無顏色表RGB圖像TGA未壓縮的無顏色表RGB圖像格式的說明如表1.2所示。
表1.2 TGA未壓縮的無顏色表RGB圖像格式說明
偏移(位元組) | 長度(位元組) | 描述 |
0 | 1 | 圖像信息欄位(見本子表的後面)的字元數。本欄位是1位元組無符號整型,指出了圖像格式區別欄位的長度,其取值範圍是0到255,當它為0時表示沒有圖像的信息欄位 |
1 | 1 | 顏色表類型。該欄位的內容或者為0或者為1;0表示沒有顏色表,1表示顏色表存在。由於本格式是無顏色表的,因此此項通常被忽略 |
2 | 1 | 圖像類型碼。該欄位總為2,這也是此類型為格式2的原因 |
3 | 5 | 顏色表規格。如果顏色表類型欄位為0則被忽略;否則描述如下 |
3 | 2 | 顏色表首址。顏色表首元入口的整型(低位-高位)索引 |
5 | 2 | 顏色表的長度。顏色表的表項總數,整型(低位-高位) |
7 | 1 | 顏色表表項的位(bit)數。16代表16位TGA、24代表24位TGA、32代表32位TGA |
8 | 10 | 圖像規格 |
8 | 2 | 圖像X坐標起始位置。圖像左下角X坐標的整型(低位-高位)值 |
10 | 2 | 圖像Y坐標起始位置。圖像左下角Y坐標的整型(低位-高位)值 |
12 | 2 | 圖像寬度。以像素為單位,圖像寬度的整型(低位-高位)值 |
14 | 2 | 圖像高度。以像素為單位,圖像高度的整型(低位-高位)值 |
16 | 1 | 圖像每像素存儲占用位(bit)數。它的值為16、24或32等,決定了該圖像是TGA 16、TGA24、TGA 32等 |
(續表)
偏移(位元組) | 長度(位元組) | 描述 |
17 | 1 | 圖像描述符位元組 bits 3~0:每像素對應的屬性位的位數;對於TGA 16,該值為0或1;對於TGA 24,該值為0;對於TGA 32,該值為8bit 4:保留,必須為0bit 5:螢幕起始位置標誌 0:原點在左下角 1:原點在左上角 Truevision圖像必須為0bits 7~6:交叉數據存儲標誌 00:無交叉 01:兩路奇/偶交叉 10:四路交叉 11:保留 |
18 | 可變 | 圖像信息欄位。包含一個自由格式的,長度是圖像記錄塊偏移0處的位元組中的值。它常常被忽略(即偏移0處值為0),注意其最大可以含有255個字元。如果需要存儲更多信息,可以放在圖像數據之後 |
可變 | 可變 | 顏色表數據。如果顏色表類型為0,則該域不存在,否則越過該域直接讀取,圖像顏色表規格中描述了每項的位元組數,為2、3、4之一 |
可變 | 可變 | 圖像數據域。這裡存儲了(寬度)×(高度)個像素,每個像素中的rgb色值;該色值包含整數個位元組 (1)3位元組表項中各位元組依次對應BLUE、GREEN、RED。 (2)2位元組表項中,兩個位元組分解成如下形式:arrrrrgg gggbbbbb,但是,由於低位在前,高位在後的存儲順序,從檔案中讀出表項時,將先讀入gggbbbbb而後讀入arrrrrgg;a表示屬性位 (3)4位元組表項包含了分別代表blue、green、red及屬性的四個位元組。 (由於硬體上的原因)有的時候TGA 24類型的圖像也像TGA 32類型的圖像那樣存儲 |
3. 數據類型9:帶顏色表的遊程長度(Runlength)編碼圖像帶顏色表的遊程長度編碼TGA圖像格式的說明如表1.3所示。
表1.3 帶顏色表的遊程長度編碼TGA圖像格式說明
偏移(位元組) | 長度(位元組) | 描述 |
0 | 1 | 圖像信息欄位(見本子表的後面)的字元數。本欄位是1位元組無符號整型,指出了圖像格式區別欄位長度,其取值範圍是0到255,當它為0時表示沒有圖像的信息欄位 |
1 | 1 | 顏色表的類型。該欄位為表示對應帶顏色表的圖像而總為1 |
2 | 1 | 圖像類型碼。本類型該欄位為二進制9 |
(續表)
偏移(位元組) | 長度(位元組) | 描述 |
3 | 5 | 顏色表規格。如果顏色表類型欄位為0則被忽略;否則描述如下 |
3 | 2 | 顏色表首址。顏色表首元入口的整型(低位-高位)索引 |
5 | 2 | 顏色表的長度。顏色表的表項總數,整型(低位-高位) |
7 | 1 | 顏色表表項的位(bit)數。16代表16位TGA、24代表24位TGA、32代表32位TGA |
8 | 10 | 圖像規格 |
8 | 2 | 圖像X坐標起始位置。圖像左下角X坐標的整型(低位-高位)值 |
10 | 2 | 圖像Y坐標起始位置。圖像左下角Y坐標的整型(低位-高位)值 |
12 | 2 | 圖像寬度。以像素為單位,圖像寬度的整型(低位-高位)值 |
14 | 2 | 圖像高度。以像素為單位,圖像高度的整型(低位-高位)值 |
16 | 1 | 圖像每像素存儲占用位(bit)數 |
17 | 1 | 圖像描述符位元組 bits 3~0:每像素的屬性位(bit)數 bit 4:保留,必須為0 bit 5:螢幕起始位置標誌 0:原點在左下角 1:原點在左上角 Truevision圖像必須為0 bits 7~6:交叉數據存儲標誌 00:無交叉 01:兩路奇/偶交叉 10:四路交叉 11:保留 |
18 | 可變 | 圖像信息欄位。包含一個自由格式的,長度是圖像記錄塊偏移0處的位元組中的值。它常常被忽略(即偏移0處值為0),其最大可以含有255個字元。如果需要存儲更多信息,可以放在圖像數據之後 |
可變 | 可變 | 顏色表數據。起始位置由前一個欄位的大小決定;其長度由單項數據大小和數據項數目決定(在前面相應的說明欄位中給出),每項是2位元組、3位元組或4位元組,位元組中沒有使用的位(bit)被認為是屬性位。 (1)4位元組表項中,位元組1表示BLUE、位元組2表示GREEN、位元組3表示RED、位元組4表示屬性。 (2)3位元組表項中各位元組依次對應BLUE、GREEN、RED。(3)2位元組表項中,兩個位元組分解成如下形式:arrrrrgg gggbbbbb,但是,由於低位在前,高位在後的存儲順序,從檔案中讀出表項時,將先讀入gggbbbbb而後讀入arrrrrgg,a表示屬性位 |
(續表)
偏移(位元組) | 長度(位元組) | 描述 |
可變 | 可變 | 圖像數據域。本區域給出了(寬度)×(高度)個顏色表索引,這些索引存放在數據包中;有兩種類型的數據包:run-length數據包以及未加工的數據包。每種類型的數據包含有1位元組的頭信息(其中指出了數據包類型和數目),其後是可變長度的數據域,頭信息中最高位為1表示run-length類型的數據包,當它為0時,表示未加工的數據包。 對於run-length數據包,頭信息含義如下。 1 bit id:7位的重複記數減1。由於7位表示的最大值為127,故最大的運行大小為128。 1:c c c c c c c。 對於未加工的數據包,頭信息的含義如下。 1 bit id:7位的像素個數減1。由於7位表示的最大值為127,故該類型的一個數據包中像素個數不能大於128。 0:n n n n n n n。 對於run-length數據包而言,頭信息之後是一個簡單的顏色索引,且假定該索引被重複頭信息中低7位表示的次數,run-length數據包也許會跨越掃描線(掃描線起始於某行結束於下一行);對於未加工的數據包,頭信息之後是顏色索引(數值由頭信息給出),該類型的數據包也可能跨越掃描線 |
4. 數據類型10:遊程長度(Runlength)編碼的RGB圖像遊程長度編碼的RGB TGA圖像格式說明如表1.4所示。
表1.4 遊程長度編碼的RGB TGA圖像格式說明
偏移(位元組) | 長度(位元組) | 描述 |
0 | 1 | 圖像信息欄位(見本子表的後面)的字元數。本欄位是1位元組無符號整型,指出了圖像格式區別欄位長度,其取值範圍是0到255,當它為0時表示沒有圖像的信息欄位 |
1 | 1 | 該欄位的內容或者為0或者為1;0表示沒有顏色表,1表示顏色表存在。由於本格式是無顏色表的,因此此項通常被忽略 |
2 | 1 | 圖像類型代碼。本類型該欄位為二進制10 |
3 | 5 | 顏色表規格。如果顏色表類型欄位為0則被忽略;否則描述如下 |
3 | 2 | 顏色表首址。顏色表首元入口的整型(低位-高位)索引 |
5 | 2 | 顏色表的長度。顏色表的表項總數,整型(低位-高位) |
7 | 1 | 顏色表表項的位(bit)數。16代表16位TGA、24代表24位TGA、32代表32位TGA |
8 | 10 | 圖像規格 |
8 | 2 | 圖像X坐標起始位置。圖像左下角X坐標的整型(低位-高位)值 |
(續表)
偏移(位元組) | 長度(位元組) | 描述 |
10 | 2 | 圖像Y坐標起始位置。圖像左下角Y坐標的整型(低位-高位)值 |
12 | 2 | 圖像寬度。以像素為單位,圖像寬度的整型(低位-高位)值 |
14 | 2 | 圖像高度。以像素為單位,圖像寬度的整型(低位-高位)值 |
16 | 1 | 圖像每像素存儲占用位(bit)數 |
17 | 1 | 圖像描述符位元組 bits 3~0:每像素的屬性位(bit)數;bit 4:保留,必須為0;bit 5:螢幕起始位置標誌;0:原點在左下角;1:原點在左上角;Truevision圖像必須為0;bits 7~6:交叉數據存儲標誌;00:無交叉;01:兩路奇/偶交叉;10:四路交叉;11:保留 |
18 | 可變 | 圖像信息欄位。包含一個自由格式的,長度是圖像記錄塊偏移0處的位元組中的值。它常常被忽略(即偏移0處值為0),其最大可以含有255個字元。如果需要存儲更多信息,可以放在圖像數據之後 |
可變 | 可變 | 顏色表數據。如果顏色表類型為0,則該域不存在,否則越過該域直接讀取;圖像顏色表規格中描述了每項的位元組數,為2、3、4之一 |
可變 | 可變 | 圖像數據域。本區域給出了(寬度)×(高度)個顏色表索引,這些索引存放在數據包中;有兩種類型的數據包:run-length數據包以及未加工的數據包,每種類型的數據包含有1位元組的頭信息(其中指出了數據包類型和數目),其後是可變長度的數據域,頭信息中最高位為1表示run-length類型的數據包,當它為0時,表示未加工的數據包。 對於run-length數據包,頭信息含義如下。 1 bit id:7位的重複記數減1。由於7位表示的最大值為127,故最大的運行大小為128。 1:c c c c c c c。 對於未加工數據包,頭信息的含義如下。 1 bit id:7位的像素個數減1。由於7位表示的最大值為127,故該類型的一個數據包中像素個數不能大於128。 0:n n n n n n n。 對於run length數據包,頭信息之後是一個簡單顏色值,且假定該值重複的次數為頭信息中記錄的數,run-length數據包也許會跨越掃描線(掃描線起始於某行結束於下一行);對於未加工的數據包,頭信息之後是顏色值(數目由頭信息指出)。顏色表項自身有2位元組、3位元組或4位元組。 (1)3位元組表項中各位元組依次對應BLUE、GREEN、RED。 (2)2位元組表項中,兩個位元組分解成如下形式:arrrrrgg gggbbbbb,但是,由於低位在前,高位在後的存儲順序,從檔案中讀出表項時,將先讀入gggbbbbb而後讀入arrrrrgg;a表示屬性位。 (3)4位元組表項包含了分別代表blue、green、red及屬性的4個位元組。 (由於硬體上的原因)有的時候TGA 24類型的圖像也像TGA 32類型的圖像那樣存儲 |