设为首页收藏本站官方微博

【汉化资料】TGA图像文件格式资料

[复制链接]
查看: 1341|回复: 0
打印 上一主题 下一主题

【汉化资料】TGA图像文件格式资料

跳转到指定楼层
楼主
发表于 2009-6-3 22:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

【汉化资料】TGA图像文件格式资料

原文
# v- \( b. A" Phttp://dev.gameres.com/Program/Visual/Other/TGAFormat.htm
" B- n& O  c( w  
! L% R0 p* p. x  T, S( U% Q1 O3 B根据david mcduffe编写的TGA文件格式资料翻译而成# L* g  k/ m! i" r
 / z% v+ P8 ~+ d8 X1 P
本文档是为满足许多对 TGA 图像格式的了解需要而创建的。本文摘录自truevision 技术指南的附录 C,如果7 G3 @  l! V& r5 E; e5 S
需要更进一步的信息,请致信以下地址:: A  C1 e. T) j# `" j1 R

2 d$ o; i/ l! x7 a: z           at&t
# v5 m$ B' E* U& `( `3 E: n           electronic photography and imaging center& n% f0 a, M+ D* k- T% P
           2002 wellesley ave.$ N+ ^6 S0 q" v
           indianapolis, in 42619
# Q7 v2 V* H4 @  J9 q本文档不求全面,但力求准确。如果你发现了任何拼写错误或内容错误,请告诉我,( david mcduffe, 3 ?) M( {$ |* D6 j* {0 F
75530,2626 ),我将改正这些错误,谢谢。
- n( D$ M3 P. ?- h
9 b# s2 q$ P/ M  M, X+ S不全面的原因是 TGA 包含了超过六种图像文件格式,而其中的几种较为常用。 我选择了我现在使用的格式并# K9 A# X2 q; Q( |
在本文中加以详解。 如果你需要本文中没有包含的格式说明,你可以与你的 truevision 代理商联系。0 ], N0 E; t+ G
对所有的 TGA 格式的文件而言,其第三字节(二进制整数)用来区别各种不同的 TGA 文件。下面列出了该字
& f! N; s6 P: \" p7 B1 i% ~1 \, \! w节表明的对应文件类型:
* ^. {% c; m; n) a1 q. M7 t2 v    0  -  文件中没有图像数据6 s5 W7 C5 T4 T6 ?0 u
    1  -  未压缩的,颜色表图像3 I1 e+ ~: p7 f" v! i& e
    2  -  未压缩的,rgb 图像
7 p, K! \4 n2 j6 d( ]) U    3  -  未压缩的,黑白图像
6 `( M5 g6 c( i    9  -  runlength 编码的颜色表图像
; ~. M$ Q# K; T9 E4 Q; j' C    10 -  runlength 编码的 rgb 图像2 B! ]- M% w/ ]/ `" A  ^- q
    11 -  压缩的,黑白图像
  m# j& T6 o; I( P$ X: m9 P( U    32 -  使用 huffman,delta 和 runlength 编码的颜色表图像
( }+ @$ k4 ^& K: |& v& S( u    33 -  使用 huffman,delta 和 runlength 编码的颜色映射图像,4 趟四叉树类型处理。7 ^! S1 T% G& S6 q5 _7 a
    本文仅仅描述对应 1,2,9 和 10 的文件格式。
' F! j4 K2 a8 H: k# \* Z0 i- b* j( \
--------------------------------------------------------------------------------
* j- Z7 \! v* f) q5 @* R|数据类型 1: 颜色表(color-mapped)图像
% t- c* g/ g$ v6 N7 |; E|--------|--------|------------------------------------------------------------
4 z! d* }  c! ]2 _$ K/ O9 t3 a( Z|  偏移  |  长度  |                            描述
' J4 |: J# a4 o  y6 u|--------|--------|------------------------------------------------------------- \* Z( y! M; a, Z6 k2 ]( H3 {* S: {: n
|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               8 _1 q8 v, r6 V4 [% i
|        |        |                                                            , t$ M9 {, o3 `7 M5 {. E
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     
/ S; g! h) K- W' u9 F( b|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     
: K0 ~6 d# P2 T9 Q+ J|        |        |  信息字段。                                   0 L. K9 C% @. n) X( W8 w# q
|        |        |                                         ! W7 n  `' f5 l) Z8 w
|        |        |                                                            
: S' X* p1 {; F; U1 w|--------|--------|------------------------------------------------------------8 T  n+ g; O& k0 N# G3 X
|    1   |     1  |  颜色表的类型                                          
# L) E. ^  w0 M|        |        |                                                            
8 K# v' @7 m* y: ?% r|        |        |  该字段为表示对应格式 1 的图像而包含一个二进制 1           + P* I2 W; l% I& z+ L6 `
|        |        |                                                            ) N- z' K1 _) L, R  T
|--------|--------|------------------------------------------------------------- l5 h% H( F$ }
|    2   |     1  |  图像类型码                                            6 N1 P4 g* f$ l
|        |        |                                                            " i" D  ~! c1 y  n9 i! h5 P" M
|        |        |  该字段总为 1 , 这也是此类型为格式 1 的原因               & t: J6 b2 y' c& l7 F1 T
|        |        |                                                            
/ @2 F& ^/ K4 ^# Z|--------|--------|------------------------------------------------------------
4 F' S( b# O' D|    3   |     5  |  颜色表规格                                       9 G8 l% V) t% s5 F: e( w  g3 H4 G
|        |        |                                            
5 u* f4 d- D8 p1 Y( F" D|    3   |     2  |  颜色表首址                                                
6 Q0 _; m9 i2 V2 C( f* d  ||        |        |  颜色表首元表项的整型(低位-高位)索引                2 r0 U5 _# d8 o2 f
|        |        |                                                            * ^5 I$ i9 j  E8 {: i& C
|    5   |     2  |  颜色表的长度                                          $ y4 o# Q7 T$ P# W3 a1 Q
|        |        |  颜色表的表项总数,整型(低位-高位)                  
$ a+ S8 e. G, Y' w|        |        |                                                            
' D4 b( K, d- q6 f- B( a5 M|    7   |     1  |  颜色表表项的位(bit)数                                   
/ ^% _( E: F& E0 S0 q|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA : l2 _' w+ G1 o9 J, d
|        |        |                                    
5 {9 o  v; s9 N|        |        |                                                            / A. ]. e: m0 m8 w4 w2 d
|--------|--------|------------------------------------------------------------
" A. {, {! Z! S9 K+ F9 b|    8   |    10  |  图像规格                                               
; }- P  y; `* e! h. n|        |        |                                                            
5 R- d; P1 x$ O1 s& \7 J* W8 {5 s|    8   |     2  |  图像 x 坐标起始位置                                       
  P$ x% c, |! y9 {. z+ {|        |        |  图像左下角 x 坐标的整型(低位-高位)值               5 b3 C& Z  U- W, `0 \0 M" S1 t
|        |        |                                                         
- n9 W  g1 s; F- A  ]6 P- U|        |        |                                                            
/ U; H4 H0 a" y# J|   10   |     2  |  图像 y 坐标起始位置                                       
8 S. |. ]+ G1 T5 U/ H0 |" x|        |        |  图像左下角 y 坐标的整型(低位-高位)值               
) u9 M7 m( O. s/ Q4 _: h  _|        |        |                                                         
; S* q) D2 G. c$ V. D) }|        |        |                                                            & J0 C8 C6 ]2 F+ ~3 h4 T
|   12   |     2  |  图像宽度                                                   1 z: f0 ]/ f/ J
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           
1 O8 \! _8 y; ]9 E. _, B- h|        |        |                                                            
( G! J$ i7 V: |6 v+ C4 u2 p* P|   14   |     2  |  图像高度                                                   8 w' D" Z5 N* p% S, N
|        |        |  以像素为单位,图像高度的整型(低位-高位)值               
4 `: @. c; I  _3 v% J2 ^|        |        |                                                            
1 o9 E2 G  z$ o( c5 D9 W, k. d& E2 Z; u|   16   |     1  |  图像每像素存储占用位(bit)数                             2 d4 ]4 S1 K* p/ C: z+ o
|        |        |                                             . c; x7 j! c; \" N) Z" i
|        |        |                                                            
7 u4 Q- `/ ?, x2 k9 U) Z|   17   |     1  |  图像描述符字节                                          
9 Q  u) j3 v( @|        |        |  bits 3-0 - 每像素的属性位(bit)数                   ! t% y/ X0 o0 I$ G( w  A% Z/ d6 d
|        |        |                                                        0 w7 B% r& Q: x4 N8 H5 j) ~. c
|        |        |  bit 4    - 保留,必须为 0                              
' k( p/ \; X* e# K|        |        |  bit 5    - 屏幕起始位置标志                           
5 s! X) C0 x9 X' \2 p/ X' h|        |        |             0 = 原点在左下角                       : _) w/ p9 Y) ^# s- o- q0 E1 P; W
|        |        |             1 = 原点在左上角                        
4 i! P+ @/ f" M( ~|        |        |             truevision 图像必须为 0                         ' f* |  n* @) x, S" W
|        |        |  bits 7-6 - 交叉数据存储标志                       
. o9 G$ k* ^" d: G" P6 ?' l/ N|        |        |             00 = 无交叉                                   7 X0 C6 K: z- o, F( N1 |
|        |        |             01 = 两路奇/偶交叉                        $ |; ?& Y0 ~  C- t: u' R# x0 N
|        |        |             10 = 四路交叉                               1 u% w% U9 x3 U* G# L( H
|        |        |             11 = 保留                                   8 w1 T1 m: ~7 J9 E  |0 B0 I4 c" [5 K
|        |        |  这一项应该设为 0,不要问我为什么                   - G) o: K* r3 R5 y8 _" P
|        |        |                                                            
' v+ f! X& q# R1 C4 ]8 N* t|--------|--------|------------------------------------------------------------
, ?# v! ~) T6 t+ Q1 n4 f) K7 V|   18   |  可变  |  图像信息字段                                       
' `( _3 D" y! p( [5 \# \# L0 E4 M. K! `|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   , ?7 h" F. H1 m  I' T
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以    4 f1 X6 \, M% f* K' m# W
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   
+ j, O- g2 Q9 w& \% K% X|        |        |  之后                               5 s  p; P1 l4 @- q& M) F/ L4 H+ W
|        |        |                                    
8 n. B4 t6 l3 `$ J|        |        |                                                            / w8 J. N0 c: x; W, v
|--------|--------|------------------------------------------------------------
  q6 q9 K7 p' y! G$ q$ i3 O|  可变  |  可变  |  颜色表数据                                                
3 W$ q  l9 I* F|        |        |                                                            
5 A4 o. O9 l6 ?9 Q: J|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小      . t8 N0 _+ O* I1 b+ W
|        |        |  和数据项数目决定(在前面相应的说明字段中给出)            
9 H$ a. @$ ^3 q) u# j|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit) # |% h2 j3 u- a* Q/ ]: l) e4 c$ }0 H0 P+ m
|        |        |  被认为是属性位。                           
/ e8 Z2 \' E  l  E. U+ [|        |        |                                                            
3 K! K; p7 H4 W' K$ M8 |: n|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,
9 g9 k# S. x( O8 b! H5 l% ||        |        |              字节 3 表示 RED,字节 4 表示属性           0 H1 C$ U/ w7 ^1 \) [, [4 a; ]
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               
/ @0 G) ~3 S; Y' p9 ]|        |        |                                                            - E/ h/ d+ u/ G% C/ t, J5 p$ B
|        |        |  2 字节表项中,两个字节分解成如下形式:               
6 D! q  H* W8 u' d; ]9 o% S|        |        |  arrrrrgg gggbbbbb                           * b* Q) S# d0 j% B. ~
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
" w5 U' o4 s3 V9 c0 k|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。  
& O* l: v: h) J0 X4 [|        |        |                                                            9 N6 }$ l. D* [9 U
|--------|--------|------------------------------------------------------------
! W2 i  k( S* H0 w) A* f  p|  可变  |  可变  |  图像数据字段                           
( H& q1 a7 M1 g7 |4 T/ y: e1 J$ N|        |        |                                                            
0 U2 b) x; b' z7 @/ K|        |        |  该字段给出了 (高度)x(宽度)个颜色表项索引,每个索引    5 M! W& X5 w, J  H# H$ b6 v
|        |        |  以整数个字节的形式存储(典型的例子如 1 或 2 个字节)      ) m9 D( R  X" F: W. V0 }* k; M
|        |        |  所有的数据都没有符号,对于 2-字节表项而言,低位字节是     0 c! g) c" d: {2 f8 T5 l. n
|        |        |  先存储的。                               & ~7 V$ a1 x: \0 z
|        |        |                                                            
6 k8 l* b  o6 }5 z9 x1 a% ?-------------------------------------------------------------------------------
$ k( m* M  z- v  j8 e( u: O  |) W. V% I+ I* }
: b2 B# G& J1 W6 \! ~2 t: ^

4 l) b$ @0 s& ?! q7 W/ h6 Y--------------------------------------------------------------------------------5 h2 _: v4 G9 i% y; Q1 t! N% V
|数据类型 2: 无颜色表 rgb 图像                                  : [# a( K, M) ?! d* X+ [
|--------|--------|------------------------------------------------------------
) t1 E; y! ~" x|   偏移 |   长度 |                         描述                              
+ }  n0 P4 _- i; w2 P4 f* P; ||--------|--------|----------------------------------------------------------
  N2 f1 O6 \9 r/ y|    0   |     1  |  图像信息字段( 见本子表的后面 )的字符数; {+ i* c. C, r0 m5 J! Y8 z& N
|        |        |                                          8 k( H9 o- r9 h4 ~: a8 [# W
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度
2 b8 B1 }) }' o' ?# d|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的" P1 [" \0 F' O# K
|        |        |  信息字段。
0 d5 E8 x8 j% R6 H  @) J( ?0 R|        |        |
/ x' i( [0 I3 y/ W6 l4 I|--------|--------|------------------------------------------------------------0 N# y0 T6 E% C6 B; u
|    1   |     1  |  颜色表类型
9 G% @! N, m- B/ B4 E$ b|        |        |                                                 2 f4 s! v1 ?& w1 E5 g6 S; S0 O4 I) Z
|        |        |  该字段的内容或者为 0 或者为 1;0 表示没有颜色表,1 表示( N6 F, }! N8 X: ?: ~- }
|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。
9 `8 `! J; \5 X/ b8 G( k* y8 \|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射2 V$ p: Z6 ~0 t) L; M
|        |        |        中的第一种颜色
! ~; A# q& F3 Z' u) x|        |        |
1 u/ m2 A! n1 {|--------|--------|------------------------------------------------------------
  m  t2 f. ^( W0 f7 ^3 A* s|    2   |     1  |  图像类型码
; V3 W2 W9 H0 T3 A3 m3 u( B|        |        |                                                     
; h, R1 j* ^& e3 k( I/ e- ^|        |        |  该字段总为 2 , 这也是此类型为格式 2 的原因    " `, Z. K( t$ Q  ]: J
|        |        |  
/ N# x# m2 K: V+ M  k$ y|--------|--------|------------------------------------------------------------
9 Y6 `0 ~8 f6 o" q/ B6 C) [0 |. b|    3   |     5  |  颜色表规格, N$ @/ `- C" p" _3 C
|        |        |                                                         
# Q; Q" s6 d. v* s|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下' `! j9 ^  R' z$ i, [6 Y7 w
|        |        |  
) O9 Y8 ?  ]+ Z5 w, h5 h& p" S& a6 H& S|    3   |     2  |  颜色表首址+ k% r9 J) }: F" I
|        |        |  颜色表首元入口的整型(低位-高位)索引+ y$ S9 u& B) J! P' l
|        |        |                  
$ \' [5 {, ~* C* n& l5 L) C  H; g4 p|    5   |     2  |  颜色表的长度
$ z+ N# q! R. Y3 j|        |        |  颜色表的表项总数,整型(低位-高位)     . B4 H, A! ?3 u3 h
|        |        |                                   
5 _7 t- F4 D; p! G+ w0 {3 b|    7   |     1  |  颜色表表项的位(bit)数
& @* K" n) R/ a# j( @* m|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA
5 x. V( W: t- h' `0 n+ \5 p+ h|        |        |  
; l) ~' J' D: d! Y8 u: z2 o|        |        |                                                           . h! e3 D( E  \9 b& n5 f( i. v
|--------|--------|------------------------------------------------------------
' J9 f1 _. x5 o5 @# O3 G|    8   |    10  |  图像规格0 e1 G0 r! o6 Q8 J) h0 w
|        |        |                             
+ c# R3 t8 d* @, Z|    8   |     2  |  图像 x 坐标起始位置       9 r. L! K& e' x3 I
|        |        |  图像左下角 x 坐标的整型(低位-高位)值
2 G8 B7 N5 |8 G8 u2 y9 O' R9 x|        |        |  7 I8 B  }+ k6 i8 k5 P8 c+ w
|        |        |" j) B  ?& `/ _; Y% J. G# G
|   10   |     2  |  图像 y 坐标起始位置
. _8 e: m; Y0 B6 F$ a- m|        |        |  图像左下角 y 坐标的整型(低位-高位)值- _) K2 q0 }4 i0 \& R0 d. W' @. ?0 N( E
|        |        |  1 Q8 b, `( T$ R' c
|        |        |& a) F: Z5 @# p- R" X
|   12   |     2  |  图像宽度
9 o9 B- n% R' i) O. H|        |        |  以像素为单位,图像宽度的整型(低位-高位)值
7 Y7 j) M( ^4 |' p# N/ T* D; @|        |        | & `. H! U; A$ W8 m
|   14   |     2  |  图像高度
4 ~) u" k6 W) n|        |        |  以像素为单位,图像高度的整型(低位-高位)值
; T7 _& |; l; C- |5 ~! Z5 B|        |        |# N3 Y" ?3 j9 ?# S9 k/ P
|   16   |     1  |  图像每像素存储占用位(bit)数0 P5 g6 \+ Q! V/ m8 \
|        |        |  它的值为16,24 或 32 等等决定了该图像是 TGA 16,TGA24
* e, h1 H$ c1 g|        |        |  TGA 32 等等
9 I! G& T% r# {( o9 k|        |        |4 j) h  J; a, @4 M% ^" j9 w
|   17   |     1  |  图像描述符字节& X, \, d0 }! b1 G4 G' ]5 B
|        |        |  bits 3-0 - 每像素对应的属性位的位数;对于     TGA 16,
2 B7 q5 ^4 {" |( Z  D|        |        |             该值为 0 或 1,对于 TGA 24,该值为 0,
6 V/ b, s, U0 X5 ~|        |        |             对于 TGA 32,该值为 8
0 f0 M% g$ |2 g0 F5 ~  f|        |        |             ' \6 L# ^1 y; j2 H# M( E- S
|        |        |  bit 4    - 保留,必须为 0: \/ v) c# O$ R9 `. d/ ~  V
|        |        |  bit 5    - 屏幕起始位置标志
7 i) P' k* v% h8 l+ r|        |        |             0 = 原点在左下角# [, J4 f1 b' J; Q: r. p
|        |        |             1 = 原点在左上角$ ]" f2 T7 K: b
|        |        |             对于 truevision 图像必须为 0
8 g# A: F# m9 N2 u2 C. W|        |        |  bits 7-6 - 交叉数据存储标志
' {* f. b( c' X|        |        |             00 = 无交叉                                   
/ \: r0 d% e. |$ P& z. q|        |        |             01 = 两路奇/偶交叉                        9 J$ ?+ W. i# b6 \* A2 c: _# h1 R
|        |        |             10 = 四路交叉                              
2 F$ o* ?- S  J$ Z9 L1 U|        |        |             11 = 保留
0 x* m4 z2 I8 o" y! }4 k: m+ Y|        |        |                                                            / u/ E3 }9 @9 `8 M* A0 u  p0 j
|--------|--------|------------------------------------------------------------' I- a7 d5 y6 G& P; `" a2 v; _7 @% {
|   18   | 可变   |  图像信息字段                                       
1 _% i9 g/ h1 M* p|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   4 Z# w/ v8 f# I4 @
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以    - U5 t) w/ r/ m2 F5 @! g* f/ ?! u3 v. B% o
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   
+ y7 b' d5 ~" b: T2 t' \|        |        |  之后                              
/ u/ ]5 J5 z& n* O; N7 g|        |        |                                                            
$ }" `7 ~% Z. v. j+ K  `3 I' D|--------|--------|------------------------------------------------------------& T! l6 _/ N  D" Z9 ^% @# J
|  可变  |  可变  |  颜色表数据                                                ! e$ j% c: G3 Z5 B
|        |        |                                                0 S, O1 q# _1 C  W4 I
|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取, b3 g9 u$ u1 X4 S. L
|        |        |  图像颜色表规格中描述了每项的字节数,为 2,3,4 之一
6 y1 f+ j& c- u+ z3 [|        |        |  
  w/ i8 d3 W  q, F|        |        |  
% L/ q' A5 n, N: x* H|        |        |  * d+ `# L' K( K3 s/ Y" ]8 T& i
|        |        |  : W9 Z! k# v+ Q; b
|--------|--------|------------------------------------------------------------
0 I/ f/ Z! T3 B1 X9 s  I|  可变  |  可变  |  图像数据域
; u4 Z- ^& l" t, m' c|        |        |                                                    ( c8 c8 ?0 S& m5 R; a" o
|        |        |  这里存储了(宽度)x(高度)个像素,每个像素中的 rgb 色值$ `& c6 K/ {9 y- e6 L9 C( ^
|        |        |  该色值包含整数个字节
+ F0 ~& }) h. |) X; x; c" m|        |        |  
) n% A6 x' e) N( h: T|        |        |                                                           2 ?/ l# q/ w8 j7 x
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               7 S( ]# l9 G+ \/ S' W; S
|        |        |                                                            
# h0 ~" X# N  r/ Q6 S|        |        |  2 字节表项中,两个字节分解成如下形式:               
" ~; t3 ^- S5 q* [; z|        |        |  arrrrrgg gggbbbbb                           
: X$ p% b( Z) R8 W|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
, I( N8 @& q5 h' x- k" h9 O|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位5 w5 C# V! z- W6 |! ?- G6 B! P
|        |        |                                                          3 {1 ?, x* ?8 A2 b; P
|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个' @" E7 x2 D! M; w* {# G% g) G
|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象+ Z! K2 g; d! A0 r2 [
|        |        |  TGA 32 类型的图像那样存储& ]/ b" s9 k7 Y1 E( f5 R
|        |        |  
% }  K* Z" w- X& ~6 [, d|        |        |                                                         
* b+ B; v# j" i4 \0 e, J" L. {0 B--------------------------------------------------------------------------------& U& B. }+ K4 v" `% m. u

0 T9 y5 F. D1 V2 ^% R/ q: C7 H2 b. ^3 W; A' M: m

* P% k! Z2 j5 ]; Z& n& Q& r
# M. s- C) o0 f+ F--------------------------------------------------------------------------------) P6 [% k" N; O, t5 B; `  T( M
|数据类型 9:  runlength 编码,带颜色表的图像! a" P; L* k. S; F
|--------|--------|------------------------------------------------------------: x4 `1 C. v( h2 U
|  偏移  |  长度  |                            描述+ m. ~- B2 O- w5 f
|--------|--------|------------------------------------------------------------( q6 c: J  g! l* v
|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               
8 l2 k" a- I1 U0 B9 z* X7 k|        |        |                                                            3 [1 i( t: h$ d) \+ o8 ~# x
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     4 I& x1 i2 @6 S( e$ `5 Z- ~+ T
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     / ]; @8 K) O& c4 y, X  v8 t8 R% x
|        |        |  信息字段。    - \; l/ |. ^7 Q+ w
|        |        |                                                            
4 G! I$ S' ?" q6 G6 Y|--------|--------|------------------------------------------------------------4 G9 x) G0 o  O2 f  y) S6 u
|    1   |     1  |  颜色表的类型                                           + O* S) j  G  [& [0 j
|        |        |                                                            9 T1 t& t: G& m- `6 V% ^( l
|        |        |  该字段为表示对应带颜色表的图像而总为 1 , V; i3 {5 d0 O! Y& {) d; S0 }
|        |        |                                                            0 i4 v4 U" o% s+ ^3 ?) O
|--------|--------|------------------------------------------------------------/ V: v: ~' v8 K5 }
|    2   |     1  |  图像类型码
" n; S2 r6 F- Q1 q- P% i/ M|        |        |                                                            
8 Q* @: A0 n' m5 ?|        |        |  本类型该字段为二进制 9+ O5 ^! A: |8 Q$ ~  e
|        |        |                                                            : a0 X8 [+ B: d  Y# Y  a1 E, ?
|--------|--------|------------------------------------------------------------
6 G1 ~1 y% J' ^  `8 d|    3   |     5  |  颜色表规格
% q$ U# V" _% [5 b1 \|        |        |                                                         7 I! M  V; F" x4 A6 y
|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下; l! C7 B8 |6 j) V- B
|        |        |  3 J' }0 u# W# M
|        |        |  
& p4 `6 K  S$ C% m|    3   |     2  |  颜色表首址# e: J- e8 |: `/ f
|        |        |  颜色表首元入口的整型(低位-高位)索引# K- l- R9 [8 Y
|        |        |                  1 l& E. g; O" X1 f) w0 Q* {) s/ f
|    5   |     2  |  颜色表的长度
! m/ M% V6 q2 V4 Q8 X/ Z+ d- I|        |        |  颜色表的表项总数,整型(低位-高位)     
+ V& i+ f! M. \+ S|        |        |                                   3 z+ D+ Z9 @, i$ n& ^2 B5 L% r
|    7   |     1  |  颜色表表项的位(bit)数- {' T! K, v5 g
|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA+ `0 |9 g3 _% \
|        |        |                                                           
# ]  F5 n4 U2 I; H$ ?; @2 K$ ?|--------|--------|------------------------------------------------------------4 N/ ~' t4 u6 O2 g
|    8   |    10  |  图像规格                                               $ _5 Z' Q" {+ x/ \: G
|        |        |                                                            0 D. u* g9 U4 K8 x. V
|    8   |     2  |  图像 x 坐标起始位置                                       6 L6 U3 n0 M# @4 R
|        |        |  图像左下角 x 坐标的整型(低位-高位)值               
2 |8 @8 h  j+ X! V# r|        |        |                                                         
" T$ O. {  E8 a$ m3 @# H1 k! i|        |        |                                                            
9 ~3 `8 L- L& [% q" b|   10   |     2  |  图像 y 坐标起始位置                                       
8 A, w( Y" ]4 C0 s" B! b4 I( n|        |        |  图像左下角 y 坐标的整型(低位-高位)值               $ m3 k4 F& D$ Z3 E
|        |        |                                                         9 I" S( H" @* _" l" j- U
|        |        |                                                            
4 f3 _8 ]* V' u|   12   |     2  |  图像宽度                                                   
; m3 W* o% G& B) _9 E|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           & S, k. M( N" P% l; C  z
|        |        |                                                            5 s# f& {+ R5 e; Y, B3 a
|   14   |     2  |  图像高度                                                   
% l3 W0 A, p9 z. f, @) i3 b4 Y|        |        |  以像素为单位,图像高度的整型(低位-高位)值               2 D  H, {! H4 c' Y
|        |        |                                                            
0 A4 ?) S% X6 i1 J7 {8 V|   16   |     1  |  图像每像素存储占用位(bit)数                             , e3 V7 P! a% M
|        |        |                                             " R0 i! a: u6 ^0 X7 I, V/ [
|        |        |                                                            
! _$ M+ h8 n3 o7 @|   17   |     1  |  图像描述符字节                                          
9 y8 \( ]1 J7 R2 S" p1 H|        |        |  bits 3-0 - 每像素的属性位(bit)数                  
9 J' F- S% Y6 U% |: w|        |        |                                                        
7 m2 h1 @* G0 N8 t7 J6 r6 v* E# G|        |        |  bit 4    - 保留,必须为 0                              
, x+ g% J! i$ F# J1 ?7 [2 ?) o|        |        |  bit 5    - 屏幕起始位置标志                           ) P: ?6 t7 _" w; @% [' |. g
|        |        |             0 = 原点在左下角                       
. \) i* ^! O, e& W! s|        |        |             1 = 原点在左上角                        
3 m( p) z/ q  [: t0 Y2 O|        |        |             truevision 图像必须为 0                         ! h  E5 C# Q$ v' A. h+ _7 y
|        |        |  bits 7-6 - 交叉数据存储标志                       # r: I( [! `' v; S$ E/ j$ k
|        |        |             00 = 无交叉                                   + x, y. [* \$ l7 h9 q, O4 g# m
|        |        |             01 = 两路奇/偶交叉                        
3 N; L3 i; w. J9 R|        |        |             10 = 四路交叉                               4 \9 O' \$ |. I" Q: Q' F4 I
|        |        |             11 = 保留
7 f& c6 O" N8 x) Z# h) y) Z|        |        |                                                            % T7 L' q+ p1 u0 m
|--------|--------|------------------------------------------------------------! d) H, r; q7 B4 V( I4 Q
|   18   | 可变   |  图像信息字段                                       " D9 a4 n, `% D5 o
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   
, ^( L) W! F$ R: J2 x  M: B0 y|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
  c! I! X+ p( L; Y0 ]$ o9 J|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   # f$ k4 L9 ]$ N$ D
|        |        |  之后
! x* x8 `% A! o|        |        |                                                         
$ E* K$ `+ N6 a0 A( u$ v8 l|--------|--------|------------------------------------------------------------
/ Y* X5 y8 b) D2 s* p: N|  可变  |  可变  |  颜色表数据                                                + x: W8 x, p( b
|        |        |                                                            , F) ]$ ]4 \# c
|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小      
$ y) s6 P5 k( e: `7 K3 t|        |        |  和数据项数目决定(在前面相应的说明字段中给出)            ( K$ ^2 r. u# b* U7 Q
|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit) 5 _$ o8 I2 Y( f% `" W/ S- @
|        |        |  被认为是属性位。                           5 Z" D+ C1 ]  Z6 e
|        |        |                                                            5 X5 @; A3 v* ?, u2 \
|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,
2 y0 G' i* i: u  V# o3 M. W|        |        |              字节 3 表示 RED,字节 4 表示属性           
5 [5 a! q8 o0 \: a|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               3 @# ?7 \0 y, L" q1 l  ]
|        |        |                                                            , K6 U9 {. {6 g; N8 G/ W1 O
|        |        |  2 字节表项中,两个字节分解成如下形式:               
/ Q5 U& c/ J/ i3 C# C|        |        |  arrrrrgg gggbbbbb                           
: y: A5 J9 P; D  H3 v|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  , m9 |. L5 D2 i5 K* N6 U
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。% d$ E1 T1 t1 c( Z
|        |        |                                                            
* D% `% I1 @- f& Z% X|--------|--------|------------------------------------------------------------
( |2 L8 L# ?4 W/ ~) q9 J0 g9 Y| 可变   |  可变  |  图像数据域7 E/ z' r3 \) p+ ]! ^" M
|        |        |                                                            
4 Z' ^3 S' W0 }" y2 @0 r8 Q; |, c|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放
  T& x8 C; G& K7 W1 V! `|        |        |  在数据包中;有两中类型的数据包:run-length 数据包,
& @7 Z. X/ _! {  x1 L|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,2 z7 Q# V' }) ~! U& k
|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域
$ \1 Q5 W7 _; @% G$ I|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当6 {2 a2 u1 s( l+ B7 G/ J9 B8 @% O! S
|        |        |  它为 0 时,表示未加工的数据包
/ X% p- w! \' s+ q+ W|        |        |                                                            # u' e6 g# E. i. {8 m1 g* O
|        |        |  对于 run-length 数据包,头信息含义如下, H) k& S% W6 K7 p$ ^  {4 R9 x7 @# Z
|        |        |      __________________________________________________    - Y. n5 c3 D% F& `* O
|        |        |      | 1 bit |   7 位的重复记数减一
) `) u1 U9 Z& m4 H  y# d|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |0 c# k# i* O$ d9 ]4 ?+ ]) V
|        |        |      |       |   的运行大小为 128,(译注:原文为     |
% g9 m! I3 E6 A* [, I( @! ^|        |        |      |       |   the largest run size)          |  1 l9 v. X7 j7 v5 G1 e; T% r) w2 z/ m
|        |        |      |-------|----------------------------------------|
$ X0 }& F8 z2 D4 i& @! ]' h|        |        |      |   1   |  c     c     c     c     c     c    c  |
  E5 j" J1 h. g+ e) u) l|        |        |      --------------------------------------------------
. X; I2 I4 m3 Q) q+ ||        |        |                                                        2 g, `. @  s* T  K9 {+ Q, |* o
|        |        |  对于未加工数据包,头信息的含义如下8 h* `1 r- M0 @. R! u" E
|        |        |      __________________________________________________" ^+ ~5 G: d% S; D1 a# p4 S
|        |        |      | 1 bit |   7 位的像素个数减一                   |
" G4 [) v+ t; L|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |) H4 U0 _6 _# N, P6 q2 d
|        |        |      |       |   类型的一个数据包中像素个数不能大于   |
* s/ d5 }; w9 }/ k( D8 B|        |        |      |       |   128                                  |' f$ j/ T" B+ V' D1 A
|        |        |      |-------|----------------------------------------|( P8 u$ V9 t' n, W
|        |        |      |   0   |  n     n     n     n     n     n    n  |
+ P6 g+ F" v4 V3 ^|        |        |      --------------------------------------------------" R. C5 P! g, y9 Z9 f7 f; k
|        |        |                                                        
' I* g, w+ p0 i' y|        |        |  对于 run-length 数据包而言,头信息之后是一个简单的
9 p0 [! [" b8 Q0 k' k|        |        |  颜色索引,且假定该索引被重复头信息中低 7 位表示的次数
7 b1 ]3 }6 u0 B3 n, x! _' F|        |        |  run-length 数据包也许会跨越扫描线; C4 S: Y5 a8 I
|        |        |  (扫描线起始于某行结束于下一行)
  @9 \/ g" L6 ^- \1 L4 f|        |        |                                                        , `% U, ?1 ^. V9 U/ S7 }: z" o0 Z
|        |        |  对于未加工的数据包,头信息之后是颜色索引(数值由头信息
1 L3 l2 k/ D0 `" a. r4 y& e|        |        |  给出)该类型的数据包也可能跨越扫描线
8 y& z& C9 u: p. L' ]4 B8 ^) b+ }0 }4 ||        |        |                                                            
& _- l" P6 Z5 g# l--------------------------------------------------------------------------------
9 ]2 k8 R* g- O3 L! I$ i+ C/ q. c+ A) N6 {
. f1 h- J8 T# W. ^. p5 ^- Q
6 v' N( z* x5 E) q
) n; }+ F4 L' |6 E
--------------------------------------------------------------------------------
" Z& Z" T) ]) w( f/ u8 @|数据类型 10:run length 编码,rgb 图像8 V# j- u7 B  v+ m" w
|--------|--------|------------------------------------------------------------
/ ~1 F0 |; E& w3 g# R$ ||   偏移 |   长度 |                         描述                              
: X7 C$ g. Q, f  g3 o3 \2 _* z|--------|--------|------------------------------------------------------------
! p# }( A9 q% t9 `|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               % V. Q) @' y& V2 h+ u! o
|        |        |                                                            
0 x1 P- z1 O$ Q) _, X7 p|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     . u' H6 h7 E+ i" p0 l
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     
" B) g" v  Z# {5 s. B  R, v|        |        |  信息字段。   
: M2 i6 n7 t9 K|        |        |                                                            
7 B7 `% N; v3 V|--------|--------|------------------------------------------------------------+ I+ a1 i! u) H/ F; n$ ~+ X4 n& I  t
|    1   |     1  |  该字段的内容或者为 0 或者为 1;0 表示没有颜色表,1 表示
% r/ J8 P( n3 T# I3 L$ M( H|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。- |7 m* @5 |. ^. A$ L1 q7 L8 `* s
|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射
8 C: ^, Q# o" ?* O( [|        |        |        中的第一种颜色
& L9 `% s  u' I+ n8 V8 _|        |        |                                                            & m1 ^3 v! _- n, O/ K* u1 T- ?
|--------|--------|------------------------------------------------------------! f% l, _, Q* n2 F/ M( e& c9 k" X4 T: Y$ y
|    2   |     1  |  图像类型代码- D$ T# W  d# {+ W
|        |        |         
" J$ e1 _6 b1 ^0 I. [) S9 ]|        |        |  本类型该字段为二进制 100 A2 s1 r1 M0 n
|        |        |                        
4 ]4 `2 {' g" `* d* T|--------|--------|------------------------------------------------------------0 |! i1 [6 b' f4 O/ q
|    3   |     5  |  颜色表规格- P) J1 O; [( ~6 o
|        |        |                                                         
7 J4 W+ s1 k; I|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下
. A1 F6 R/ m  q$ ^  n0 f: s9 P& j|        |        |  
0 N* V6 m& h+ g! [4 x0 c4 e* H|        |        |  & M( w* ?8 D1 Z  R' l" x2 c. \
|    3   |     2  |  颜色表首址
, L3 s; W" ~2 m9 I! G8 e|        |        |  颜色表首元入口的整型(低位-高位)索引! ^0 d" V5 {' k6 K2 l" e
|        |        |                  
. {, p0 l9 H* ]/ J& S|    5   |     2  |  颜色表的长度
: {3 f* E3 v' ~0 S9 p) K( _) ^+ F|        |        |  颜色表的表项总数,整型(低位-高位)     
# w( C4 K' T' ~7 _5 X- c# ?|        |        |                                   - r* `+ `$ m/ G! O/ i9 x
|    7   |     1  |  颜色表表项的位(bit)数( ^! g) z+ ]* V0 ?5 `
|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA1 b  o8 b: {$ Y; V
|        |        |                                                            * c- @7 O: z$ U) w' b+ E: W
|--------|--------|------------------------------------------------------------) u! R( W  H; S: O3 U
|    8   |    10  |  图像规格                                               / m. P. X3 {. k
|        |        |                                                            . M4 v( Q* X* j6 H, s6 g5 ]
|    8   |     2  |  图像 x 坐标起始位置                                       $ q" z1 t4 B$ m/ o2 l" q3 K
|        |        |  图像左下角 x 坐标的整型(低位-高位)值               8 d+ Z# v2 e/ e% J) Z* D9 u, S
|        |        |                                                         ) x# j% [. n5 g( q- @5 c
|        |        |                                                            0 @8 Y+ T0 d4 l
|   10   |     2  |  图像 y 坐标起始位置                                       
- j0 ]/ M$ v9 v|        |        |  图像左下角 y 坐标的整型(低位-高位)值               6 v7 e1 B; m% z( W5 o; ]  p
|        |        |                                                         
+ J2 [9 n' d$ O* ^|        |        |                                                            
8 u" _1 V1 L% x% E+ x8 O|   12   |     2  |  图像宽度                                                   
- h( M  G0 T9 _2 \|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           
4 ~- p+ `. _  O1 T& y|        |        |                                                            0 w" C, [- U0 w! E) D
|   14   |     2  |  图像高度                                                   $ `+ ?! w! q1 |; [, A* c0 N
|        |        |  以像素为单位,图像高度的整型(低位-高位)值               6 d4 _7 l1 j9 i" |3 y
|        |        |                                                            ' J  j9 z# m+ l
|   16   |     1  |  图像每像素存储占用位(bit)数                             
  J7 z4 I' Y/ o5 j|        |        |                                             
1 k2 x% F' j4 H/ z' X5 {# Y7 X4 M* l|        |        |                                                            
+ |' E3 z! t4 p) |; m6 J1 W2 M|   17   |     1  |  图像描述符字节                                          
; x8 p) @. K) N3 s5 X|        |        |  bits 3-0 - 每像素的属性位(bit)数                   9 C, Y3 c6 D8 Z8 B0 R1 W0 O
|        |        |                                                        5 _1 n' X$ Q, D+ v
|        |        |  bit 4    - 保留,必须为 0                              
9 O$ O. @4 N/ g, H  z& T. Y|        |        |  bit 5    - 屏幕起始位置标志                           $ u- n' q' L3 l5 A9 a& v
|        |        |             0 = 原点在左下角                       
+ }( ~" e, O$ ?: ^8 {4 a|        |        |             1 = 原点在左上角                        
: N( @$ E0 b6 C. L5 ^& N|        |        |             truevision 图像必须为 0                         ( w$ N) w) f/ g5 H7 c% |2 }) ^
|        |        |  bits 7-6 - 交叉数据存储标志                       
( h% R1 O# b8 k; e& s|        |        |             00 = 无交叉                                     M; L9 M2 S4 W8 D  ~" @* Z  K+ g
|        |        |             01 = 两路奇/偶交叉                        
6 j& `, j9 g; A$ R|        |        |             10 = 四路交叉                               : o  W- k) r' y5 b# I. X2 l
|        |        |             11 = 保留                                   ; x/ T0 g1 u" X
|        |        |                                                            
! J" X- x% }; p+ I; A|--------|--------|------------------------------------------------------------
' M, o. q1 \; u9 A1 a  e% F4 [0 v|   18   | 可变   |  图像信息字段                                       
0 ^* }, U/ m1 Q0 e1 D" K: k* ?7 \|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   8 ~; a. Y% `$ o3 C7 z; F) m: Y/ X
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
, x: B$ z* h# j8 B|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   
* d7 E  u% o% C|        |        |  之后
7 e$ X  ]; `- ?$ T0 s( E; N4 b|        |        |                                                            3 x9 R' b; \) E. N8 I
|--------|--------|------------------------------------------------------------% v' w" d+ q; s8 b
|  可变  |  可变  |  颜色表数据                                                
8 \* ]. k" S" b|        |        |                                                7 {0 G7 _( W1 v9 Z- [+ J0 o. A, p
|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取
( v8 y) `- q6 u* Z% U; z. q|        |        |  图像颜色表规格中描述了每项的字节数,为 2,3,4 之一0 |* s+ h7 X) H* y& ^
|        |        |                                                            
+ \( j. f$ K7 g0 e8 `, C, B|--------|--------|------------------------------------------------------------6 n7 E7 S8 T, C6 n8 `9 n& t! X
| 可变   |  可变  |  图像数据域
+ |0 J2 {# F5 O2 c8 M|        |        |                                                            
" e; q+ P; H: n- h( i|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放
: m+ o' V8 U+ G0 H% W' o|        |        |  在数据包中;有两中类型的数据包:run-length 数据包,
' X0 y* [$ j% S|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,: g5 ]/ Z+ Q$ U* R) A# ^, b1 X7 ]. ^
|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域( s( B; w. ]& }4 V
|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当5 s9 P+ Q; t+ u) D
|        |        |  它为 0 时,表示未加工的数据包
$ ~: K: x) g% ~6 r|        |        |                                                           9 }, U% O" z% g
|        |        |  对于 run-length 数据包,头信息含义如下
! }+ [- }* H3 f* P0 E$ i% I|        |        |      __________________________________________________   
7 u# ^8 ?' ^7 D6 k; I* |$ P|        |        |      | 1 bit |   7 位的重复记数减一! z& \' ]4 `" m1 ?  q6 [
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |0 t' c5 Q+ q' B8 T
|        |        |      |       |   的运行大小为 128,(译注:原文为     |, a3 R; X8 c4 {7 Y: v
|        |        |      |       |   the largest run size)          |  
5 c8 e8 ^- p+ {7 G|        |        |      |-------|----------------------------------------|
" ?* _8 s. n4 Y% ]' i8 V|        |        |      |   1   |  c     c     c     c     c     c    c  |$ w( O0 h0 G8 n. d4 {0 ^) H
|        |        |      --------------------------------------------------  l0 _, F# O9 |  w
|        |        |                                                        
% X+ P7 R0 T0 C; w|        |        |  对于未加工数据包,头信息的含义如下
* S' I  v0 f6 Q* Z|        |        |      __________________________________________________+ `% C8 V1 G" b( l9 q
|        |        |      | 1 bit |   7 位的像素个数减一                   |
2 v2 [) B+ z3 w3 @|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |
7 F: o+ k/ n  t|        |        |      |       |   类型的一个数据包中像素个数不能大于   |' m1 S, u+ }  g. s6 F3 K0 l
|        |        |      |       |   128                                  |# Q' \# t) S9 j7 w) e( h
|        |        |      |-------|----------------------------------------|; G. o% R. n$ ?; {# _! I
|        |        |      |   0   |  n     n     n     n     n     n    n  |# a4 h3 m- s1 X
|        |        |      --------------------------------------------------
& x/ S' K: T7 ^, r6 c, k|        |        |                                                            - ?/ \6 a& A' t( ?' f$ \" D
|        |        |                                                            
, l+ A4 r, Q+ x% G|        |        |  对于 run length 数据包,头信息之后是一个简单颜色值,
2 {8 K% ]) Y- \# K" f|        |        |  且假定该值重复的次数为头信息中记录的数3 i3 `( `& Z- e7 w- s/ G9 S
|        |        |  run-length 数据包也许会跨越扫描线
  S+ O: O* s# @# \|        |        |  (扫描线起始于某行结束于下一行)
) j+ K# S4 e) R! k+ J/ E|        |        |                                                      
4 }- O' U' {- o' g) d/ \( ?; m|        |        |  对于未加工数据包,头信息之后是颜色值(数目由头信息指出)
8 F  w: `) ]2 D. d. j. L|        |        |  
. a. G* Z, P( h& g2 H! P|        |        |                                                - l2 P' g, B0 D1 F( ~3 O& ]) {
|        |        |  颜色表项自身有 2-字节,3-字节或 4-字节几种大小(分别* C5 Q4 P* a/ `; |4 E
|        |        |  对应 TGA 16,TGA 24 和 TGA 32)形式如下:
2 ~9 L: v( v0 e6 `- q4 [$ @( l|        |        |  
7 y9 m3 U. i2 i1 j|        |        |            % `6 W5 p, g" f% K) R( W
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               
% |6 v# D" P, A0 O|        |        |                                                            
' w4 u. E" s3 \* ^|        |        |  2 字节表项中,两个字节分解成如下形式:               , {0 S" \. E8 s7 [- T( g# o  S$ l
|        |        |  arrrrrgg gggbbbbb                           ; N* l8 g  l9 _( s  z
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
) r: H: v+ @; g# ^8 q9 J|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位" m5 {# m6 Z. f/ z1 L
|        |        |                                                         
: ~+ B: y) ^, P' m6 R0 t- R|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个8 ?1 V/ N/ A! ~8 f+ J
|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象9 A0 J2 H. {) J% g0 I4 K0 x
|        |        |  TGA 32 类型的图像那样存储' x. L4 T6 t  v: S4 D
|        |        |                                                            $ m% x6 C1 l) Z! A3 Q
--------------------------------------------------------------------------------
' t# c4 A# P3 f4 V6 y5 ?' _- v- }& v5 z
<完>
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

冒险解谜游戏中文网 ChinaAVG

官方微博官方微信号小黑屋 微信玩家群  

(C) ChinaAVG 2004 - 2019 All Right Reserved. Powered by Discuz! X3.2
辽ICP备11008827号 | 桂公网安备 45010702000051号

冒险,与你同在。 冒险解谜游戏中文网ChinaAVG诞生于2004年9月9日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

快速回复 返回顶部 返回列表