AKever

导航

TGA 图片格式读取( OpenGL ES)

TGA 图片格式读取( OpenGL ES)

转:http://dev.gameres.com/Program/Visual/Other/TGAFormat.htm

根据david mcduffe编写的TGA文件格式资料翻译而成

 

本文档是为满足许多对 TGA 图像格式的了解需要而创建的。本文摘录自truevision 技术指南的附录 C,如果
需要更进一步的信息,请致信以下地址:

           at&t
           electronic photography and imaging center
           2002 wellesley ave.
           indianapolis, in 42619
本文档不求全面,但力求准确。如果你发现了任何拼写错误或内容错误,请告诉我,( david mcduffe, 
75530,2626 ),我将改正这些错误,谢谢。
不全面的原因是 TGA 包含了超过六种图像文件格式,而其中的几种较为常用。 我选择了我现在使用的格式并
在本文中加以详解。 如果你需要本文中没有包含的格式说明,你可以与你的 truevision 代理商联系。
对所有的 TGA 格式的文件而言,其第三字节(二进制整数)用来区别各种不同的 TGA 文件。下面列出了该字
节表明的对应文件类型:
    0  -  文件中没有图像数据
    1  -  未压缩的,颜色表图像
    2  -  未压缩的,rgb 图像
    3  -  未压缩的,黑白图像
    9  -  runlength 编码的颜色表图像
    10 -  runlength 编码的 rgb 图像
    11 -  压缩的,黑白图像
    32 -  使用 huffman,delta 和 runlength 编码的颜色表图像
    33 -  使用 huffman,delta 和 runlength 编码的颜色映射图像,4 趟四叉树类型处理。
    本文仅仅描述对应 12910 的文件格式。

1.第一种格式

--------------------------------------------------------------------------------
|数据类型 1: 颜色表(color-mapped)图像
|--------|--------|------------------------------------------------------------
|  偏移  |  长度  |                            描述
|--------|--------|------------------------------------------------------------
|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               
|        |        |                                                            
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     
|        |        |  其取值范围是 0255 ,当它为 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 图像必须为 0                         
|        |        |  bits 7-6 - 交叉数据存储标志                       
|        |        |             00 = 无交叉                                   
|        |        |             01 = 两路奇/偶交叉                        
|        |        |             10 = 四路交叉                               
|        |        |             11 = 保留                                   
|        |        |  这一项应该设为 0,不要问我为什么                   
|        |        |                                                            
|--------|--------|------------------------------------------------------------
|   18   |  可变  |  图像信息字段                                       
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以    
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   
|        |        |  之后                               
|        |        |                                    
|        |        |                                                            
|--------|--------|------------------------------------------------------------
|  可变  |  可变  |  颜色表数据                                                
|        |        |                                                            
|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小      
|        |        |  和数据项数目决定(在前面相应的说明字段中给出)            
|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit) 
|        |        |  被认为是属性位。                           
|        |        |                                                            
|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,
|        |        |              字节 3 表示 RED,字节 4 表示属性           
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               
|        |        |                                                            
|        |        |  2 字节表项中,两个字节分解成如下形式:               
|        |        |  arrrrrgg gggbbbbb                           
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。  
|        |        |                                                            
|--------|--------|------------------------------------------------------------
|  可变  |  可变  |  图像数据字段                           
|        |        |                                                            
|        |        |  该字段给出了 (高度)x(宽度)个颜色表项索引,每个索引    
|        |        |  以整数个字节的形式存储(典型的例子如 12 个字节)      
|        |        |  所有的数据都没有符号,对于 2-字节表项而言,低位字节是     
|        |        |  先存储的。                               
|        |        |                                                            
-------------------------------------------------------------------------------

 

  2.第二种格式

--------------------------------------------------------------------------------
|数据类型 2: 无颜色表 rgb 图像                                  
|--------|--------|------------------------------------------------------------
|   偏移 |   长度 |                         描述                              
|--------|--------|----------------------------------------------------------
|    0   |     1  |  图像信息字段( 见本子表的后面 )的字符数
|        |        |                                          
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度
|        |        |  其取值范围是 0255 ,当它为 0 时表示没有图像的
|        |        |  信息字段。
|        |        |
|--------|--------|------------------------------------------------------------
|    1   |     1  |  颜色表类型
|        |        |                                                 
|        |        |  该字段的内容或者为 0 或者为 10 表示没有颜色表,1 表示
|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。
|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射
|        |        |        中的第一种颜色
|        |        | 
|--------|--------|------------------------------------------------------------
|    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,2432 等等决定了该图像是 TGA 16,TGA24
|        |        |  TGA 32 等等
|        |        |
|   17   |     1  |  图像描述符字节
|        |        |  bits 3-0 - 每像素对应的属性位的位数;对于     TGA 16|        |        |             该值为 01,对于 TGA 24,该值为 0|        |        |             对于 TGA 32,该值为 8
|        |        |             
|        |        |  bit 4    - 保留,必须为 0
|        |        |  bit 5    - 屏幕起始位置标志
|        |        |             0 = 原点在左下角
|        |        |             1 = 原点在左上角
|        |        |             对于 truevision 图像必须为 0
|        |        |  bits 7-6 - 交叉数据存储标志
|        |        |             00 = 无交叉                                   
|        |        |             01 = 两路奇/偶交叉                        
|        |        |             10 = 四路交叉                               
|        |        |             11 = 保留
|        |        |                                                            
|--------|--------|------------------------------------------------------------
|   18   | 可变   |  图像信息字段                                       
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以    
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   
|        |        |  之后                               
|        |        |                                                            
|--------|--------|------------------------------------------------------------
|  可变  |  可变  |  颜色表数据                                                
|        |        |                                                
|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取
|        |        |  图像颜色表规格中描述了每项的字节数,为 234 之一
|        |        |  
|        |        |  
|        |        |  
|        |        |  
|--------|--------|------------------------------------------------------------
|  可变  |  可变  |  图像数据域
|        |        |                                                    
|        |        |  这里存储了(宽度)x(高度)个像素,每个像素中的 rgb 色值
|        |        |  该色值包含整数个字节
|        |        |  
|        |        |                                                           
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               
|        |        |                                                            
|        |        |  2 字节表项中,两个字节分解成如下形式:               
|        |        |  arrrrrgg gggbbbbb                           
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位
|        |        |                                                          
|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个
|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象
|        |        |  TGA 32 类型的图像那样存储
|        |        |  
|        |        |                                                         
--------------------------------------------------------------------------------

  3.第三种格式

--------------------------------------------------------------------------------
|数据类型 9:  runlength 编码,带颜色表的图像
|--------|--------|------------------------------------------------------------
|  偏移  |  长度  |                            描述
|--------|--------|------------------------------------------------------------
|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               
|        |        |                                                            
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     
|        |        |  其取值范围是 0255 ,当它为 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) 
|        |        |  被认为是属性位。                           
|        |        |                                                            
|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,
|        |        |              字节 3 表示 RED,字节 4 表示属性           
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               
|        |        |                                                            
|        |        |  2 字节表项中,两个字节分解成如下形式:               
|        |        |  arrrrrgg gggbbbbb                           
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。
|        |        |                                                            
|--------|--------|------------------------------------------------------------
| 可变   |  可变  |  图像数据域
|        |        |                                                            
|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放
|        |        |  在数据包中;有两中类型的数据包:run-length 数据包,
|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,
|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域
|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当
|        |        |  它为 0 时,表示未加工的数据包
|        |        |                                                            
|        |        |  对于 run-length 数据包,头信息含义如下
|        |        |      __________________________________________________    
|        |        |      | 1 bit |   7 位的重复记数减一
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |
|        |        |      |       |   的运行大小为 128,(译注:原文为     |
|        |        |      |       |   the largest run size)          |  
|        |        |      |-------|----------------------------------------|
|        |        |      |   1   |  c     c     c     c     c     c    c  |
|        |        |      --------------------------------------------------
|        |        |                                                        
|        |        |  对于未加工数据包,头信息的含义如下
|        |        |      __________________________________________________
|        |        |      | 1 bit |   7 位的像素个数减一                   |
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |
|        |        |      |       |   类型的一个数据包中像素个数不能大于   |
|        |        |      |       |   128                                  |
|        |        |      |-------|----------------------------------------|
|        |        |      |   0   |  n     n     n     n     n     n    n  |
|        |        |      --------------------------------------------------
|        |        |                                                        
|        |        |  对于 run-length 数据包而言,头信息之后是一个简单的
|        |        |  颜色索引,且假定该索引被重复头信息中低 7 位表示的次数
|        |        |  run-length 数据包也许会跨越扫描线
|        |        |  (扫描线起始于某行结束于下一行)
|        |        |                                                        
|        |        |  对于未加工的数据包,头信息之后是颜色索引(数值由头信息
|        |        |  给出)该类型的数据包也可能跨越扫描线
|        |        |                                                            
--------------------------------------------------------------------------------
4.第四种格式
--------------------------------------------------------------------------------
|数据类型 10:run length 编码,rgb 图像
|--------|--------|------------------------------------------------------------
|   偏移 |   长度 |                         描述                              
|--------|--------|------------------------------------------------------------
|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               
|        |        |                                                            
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     
|        |        |  其取值范围是 0255 ,当它为 0 时表示没有图像的     
|        |        |  信息字段。    
|        |        |                                                            
|--------|--------|------------------------------------------------------------
|    1   |     1  |  该字段的内容或者为 0 或者为 10 表示没有颜色表,1 表示
|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。
|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射
|        |        |        中的第一种颜色
|        |        |                                                            
|--------|--------|------------------------------------------------------------
|    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,则该域不存在,否则越过该域直接读取
|        |        |  图像颜色表规格中描述了每项的字节数,为 234 之一
|        |        |                                                            
|--------|--------|------------------------------------------------------------
| 可变   |  可变  |  图像数据域
|        |        |                                                            
|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放
|        |        |  在数据包中;有两中类型的数据包:run-length 数据包,
|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,
|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域
|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当
|        |        |  它为 0 时,表示未加工的数据包
|        |        |                                                           
|        |        |  对于 run-length 数据包,头信息含义如下
|        |        |      __________________________________________________    
|        |        |      | 1 bit |   7 位的重复记数减一
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |
|        |        |      |       |   的运行大小为 128,(译注:原文为     |
|        |        |      |       |   the largest run size)          |  
|        |        |      |-------|----------------------------------------|
|        |        |      |   1   |  c     c     c     c     c     c    c  |
|        |        |      --------------------------------------------------
|        |        |                                                        
|        |        |  对于未加工数据包,头信息的含义如下
|        |        |      __________________________________________________
|        |        |      | 1 bit |   7 位的像素个数减一                   |
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |
|        |        |      |       |   类型的一个数据包中像素个数不能大于   |
|        |        |      |       |   128                                  |
|        |        |      |-------|----------------------------------------|
|        |        |      |   0   |  n     n     n     n     n     n    n  |
|        |        |      --------------------------------------------------
|        |        |                                                            
|        |        |                                                            
|        |        |  对于 run length 数据包,头信息之后是一个简单颜色值,
|        |        |  且假定该值重复的次数为头信息中记录的数
|        |        |  run-length 数据包也许会跨越扫描线
|        |        |  (扫描线起始于某行结束于下一行)
|        |        |                                                      
|        |        |  对于未加工数据包,头信息之后是颜色值(数目由头信息指出)
|        |        |  
|        |        |                                                
|        |        |  颜色表项自身有 2-字节,3-字节或 4-字节几种大小(分别
|        |        |  对应 TGA 16,TGA 24 和 TGA 32)形式如下:
|        |        |  
|        |        |            
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               
|        |        |                                                            
|        |        |  2 字节表项中,两个字节分解成如下形式:               
|        |        |  arrrrrgg gggbbbbb                           
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位
|        |        |                                                          
|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个
|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象
|        |        |  TGA 32 类型的图像那样存储
|        |        |                                                            
--------------------------------------------------------------------------------

   

 

----- THE END !! ---------

isearthling 2001-2-24日
最后修改于 2001-2-24日

 

posted on 2015-11-21 00:04  AKever  阅读(1496)  评论(0)    收藏  举报