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

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

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

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

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

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

原文
: F4 t9 y) b0 ~# ~9 f; g9 R2 y4 Vhttp://dev.gameres.com/Program/Visual/Other/TGAFormat.htm
2 h. K& s. t, R1 t& O( [  + x: M2 y+ R8 P* j  u4 `2 g
根据david mcduffe编写的TGA文件格式资料翻译而成# D- q- t. Y' Z, F" [5 ^* C
 * @- e% u: X2 i4 b
本文档是为满足许多对 TGA 图像格式的了解需要而创建的。本文摘录自truevision 技术指南的附录 C,如果) ~% ~1 y" R( z$ \! w6 a
需要更进一步的信息,请致信以下地址:
- A: s" |. W" y5 p+ y" H
! t2 i, B4 ^" H3 d  M1 e           at&t
8 ^( U, f; y- u. q! X2 ^           electronic photography and imaging center
: a# Q/ N8 m3 n8 ~' x           2002 wellesley ave./ H  p) g% M! u* k: @, ]2 Q3 a
           indianapolis, in 42619
- h( h) D% I$ y4 j# Y! T( g4 X本文档不求全面,但力求准确。如果你发现了任何拼写错误或内容错误,请告诉我,( david mcduffe,   K7 C- n0 Q9 O0 _. ~9 _, R! z% b  m
75530,2626 ),我将改正这些错误,谢谢。
  K$ a2 j( N  ?) n. [$ ]" \
8 u  f/ K2 ~0 u( d4 Q$ [0 ^) H0 J" l& G不全面的原因是 TGA 包含了超过六种图像文件格式,而其中的几种较为常用。 我选择了我现在使用的格式并
! B8 i5 i* V2 P% y; J  I: k! g在本文中加以详解。 如果你需要本文中没有包含的格式说明,你可以与你的 truevision 代理商联系。
7 G2 N  u0 Z0 @' {0 H- m对所有的 TGA 格式的文件而言,其第三字节(二进制整数)用来区别各种不同的 TGA 文件。下面列出了该字+ T$ e+ R6 v# N
节表明的对应文件类型:
$ ^9 E/ N5 a* @    0  -  文件中没有图像数据: g# a/ f% Q% r3 F2 z) l  O
    1  -  未压缩的,颜色表图像
# Q/ ?7 w1 H" ]( X8 g  \/ ~4 G8 D    2  -  未压缩的,rgb 图像
: B" B" h' H5 ?    3  -  未压缩的,黑白图像
5 f2 |$ d. J; d/ M2 `    9  -  runlength 编码的颜色表图像/ o' h) f, U4 x+ u
    10 -  runlength 编码的 rgb 图像
* W4 o1 O) s* R3 g    11 -  压缩的,黑白图像1 v' p# Z; `- q) C  R
    32 -  使用 huffman,delta 和 runlength 编码的颜色表图像
# g# m$ d7 x7 F% W0 ^1 \8 X    33 -  使用 huffman,delta 和 runlength 编码的颜色映射图像,4 趟四叉树类型处理。
& F# ~3 X" o; [& [% K" M, S    本文仅仅描述对应 1,2,9 和 10 的文件格式。' j# {3 Q. ~+ t/ f# b
( P1 s& Z" j. q& ?% S& x
--------------------------------------------------------------------------------
; u3 w! q' `8 X# j|数据类型 1: 颜色表(color-mapped)图像
) I& s0 w; ]0 z4 w1 D0 O& b|--------|--------|------------------------------------------------------------
1 W: R  f- [5 v2 M- U* A) P! F|  偏移  |  长度  |                            描述
4 ~1 z: W6 R: f+ n* f. Q|--------|--------|------------------------------------------------------------
1 b0 _& f2 V7 y( j|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               9 Q- |$ [" }; j6 Y
|        |        |                                                            / j+ E) U) W# f1 j7 W
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     8 N5 G+ N; \' E. r; t
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     ) F7 b! ]4 _- j) A- k: [6 c
|        |        |  信息字段。                                   
1 p# ]# [$ Y9 j2 @! t|        |        |                                         
* v+ f- S  \/ s|        |        |                                                            
) g- I1 l- n) Y* ?! g|--------|--------|------------------------------------------------------------9 ~# D% H0 _7 ]+ U/ V0 R, Z
|    1   |     1  |  颜色表的类型                                          
; e, W1 |/ S: W! C3 P( \|        |        |                                                            . {  X# y2 z# \0 D' z: `' e
|        |        |  该字段为表示对应格式 1 的图像而包含一个二进制 1           * h& E: j! v; d
|        |        |                                                            
7 y, ^4 q8 T4 t; P|--------|--------|------------------------------------------------------------1 m% x! H2 V& D: |
|    2   |     1  |  图像类型码                                            
- y: `+ S* f" _1 ]2 \|        |        |                                                            
3 }( O8 L- X) U: {0 p0 F|        |        |  该字段总为 1 , 这也是此类型为格式 1 的原因               
% }6 {2 m1 I/ Q7 E5 P6 T/ j! C|        |        |                                                            9 P" }* o* |' }, c" v
|--------|--------|------------------------------------------------------------( S& ~8 U! I6 |2 M- a
|    3   |     5  |  颜色表规格                                       + k" D* k) R1 [! Z8 }7 @
|        |        |                                            
$ m9 g6 j) |  R" U|    3   |     2  |  颜色表首址                                                - Q$ h' Z" L1 h
|        |        |  颜色表首元表项的整型(低位-高位)索引               
% @. L1 p6 a/ x  I  T4 y2 t/ Z% k|        |        |                                                            
# m: g) x7 Z* J7 [1 ]+ e$ b' @9 l, M|    5   |     2  |  颜色表的长度                                          " {; n% K) |; I/ C4 A8 \8 R
|        |        |  颜色表的表项总数,整型(低位-高位)                   : M) k, ?4 j$ }
|        |        |                                                            
/ ^- W7 ~  d, U7 o|    7   |     1  |  颜色表表项的位(bit)数                                   3 \1 X% P; P0 \
|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA - x% w! P  Y, z, `! d! D5 K$ F# L
|        |        |                                     8 t/ G1 P# Y" \( P# z
|        |        |                                                            
* Y$ z# _* e- L6 j* F9 P|--------|--------|------------------------------------------------------------4 `( ~- [  K) \' I! O" t
|    8   |    10  |  图像规格                                               ; j, k/ a  R4 m& A
|        |        |                                                            # q+ T9 Q5 _6 ]  ?2 V' _# X
|    8   |     2  |  图像 x 坐标起始位置                                       8 i, C& ^) L8 g9 d$ B
|        |        |  图像左下角 x 坐标的整型(低位-高位)值               ( g! l( b% c1 Z
|        |        |                                                         
" E, ], R: g  [|        |        |                                                              o9 i3 Z  K& h' J
|   10   |     2  |  图像 y 坐标起始位置                                       
4 s) Y: R# K& v+ M) `|        |        |  图像左下角 y 坐标的整型(低位-高位)值               & c: A" @. q$ ^
|        |        |                                                         + h1 S0 ^0 K4 s3 r' |
|        |        |                                                            
+ j+ m: i7 G" f4 N$ @( `4 s! ||   12   |     2  |  图像宽度                                                   
7 @. a7 B3 M- E* r( c1 M+ Y9 s( s|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           
1 ?" `1 E( T1 R5 i4 Z1 r1 d|        |        |                                                            
* R. q/ X6 S, O: N6 o3 g|   14   |     2  |  图像高度                                                   . {3 u1 a% U' y' F; f6 \
|        |        |  以像素为单位,图像高度的整型(低位-高位)值               1 e+ r/ |+ i, E3 M2 s( U
|        |        |                                                            
' j* U, d' Q6 w) p* ?% k' j( q|   16   |     1  |  图像每像素存储占用位(bit)数                               F  Z+ p5 O8 p  X
|        |        |                                             
- h" ]% f& \2 J# ~& F|        |        |                                                            
  E7 g4 v. `  U5 r, a1 J% ^; C|   17   |     1  |  图像描述符字节                                          
$ x8 q* Z+ g( H. V|        |        |  bits 3-0 - 每像素的属性位(bit)数                   ; n0 R( _! l5 x5 B8 p+ e
|        |        |                                                        
" t6 O/ T7 H, I  ^|        |        |  bit 4    - 保留,必须为 0                              
/ N7 f9 o2 H$ X. b$ |, w; r|        |        |  bit 5    - 屏幕起始位置标志                           
" R. z4 U9 f5 z9 X' s" r|        |        |             0 = 原点在左下角                       8 B. U; V1 y0 N* u, ^: O
|        |        |             1 = 原点在左上角                         0 E: G$ Q" c4 @7 ?9 j8 V/ v
|        |        |             truevision 图像必须为 0                        
7 i0 Y3 u/ W" f7 i|        |        |  bits 7-6 - 交叉数据存储标志                       
5 T7 k4 p' [# i) Y. }- c8 X|        |        |             00 = 无交叉                                   
3 ]8 [* w" j* B5 F|        |        |             01 = 两路奇/偶交叉                        ' g) {- f, u6 e1 v2 n- o- }
|        |        |             10 = 四路交叉                               4 |5 [6 M) K7 ^  L; M  T' S( _- {
|        |        |             11 = 保留                                   
6 @( y7 r) `0 F* S' @|        |        |  这一项应该设为 0,不要问我为什么                  
1 ~7 _% c; J  t: y/ v|        |        |                                                            , i: Z8 k9 V* C1 {' C5 q
|--------|--------|------------------------------------------------------------
6 ?1 C  G  R9 e" {7 w|   18   |  可变  |  图像信息字段                                       # k+ \  F9 F% i* l' n, \" Y
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   , E9 d4 v$ z* m( Q+ {9 M$ C
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以    ( q0 s& J! C& z. B0 |
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   
1 I. H. I1 ~$ J) ]6 u% {|        |        |  之后                               ) g* d! {) e: u1 K6 I. n% F
|        |        |                                    5 r1 b: `+ K% F  E5 K  Q& {
|        |        |                                                            + g/ j2 ^) X: L
|--------|--------|------------------------------------------------------------# {% r4 k$ B& C5 [/ N- T( u2 S
|  可变  |  可变  |  颜色表数据                                                8 B- r' A& f1 p0 L! D9 E- e0 T6 k
|        |        |                                                            
; p, ?" k( m+ \8 F. X" m|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小      
# C% P$ `: L% w( s|        |        |  和数据项数目决定(在前面相应的说明字段中给出)            
) c( {! L" c- o& B# Z- D|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit)
& P. `1 s& }4 R: [/ G7 r/ N. {% r- j|        |        |  被认为是属性位。                           3 L' x2 U  d( {' z7 ~$ _% ?0 B
|        |        |                                                            , e" N' U" C& W+ ~: h' b  I8 w2 y
|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,
, z5 p) G. e/ T1 y  _|        |        |              字节 3 表示 RED,字节 4 表示属性           
7 R$ }. C! Q! f6 _% n  D# O|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED                 l1 {9 ^/ |* n5 U! o1 E( c* @6 R
|        |        |                                                            ; j4 o! C/ L$ L; r7 }. c/ w% Y2 p
|        |        |  2 字节表项中,两个字节分解成如下形式:               , y6 _( [6 E! r: g
|        |        |  arrrrrgg gggbbbbb                           / j2 ], G' v+ [/ @) M# m
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  # \- q/ V# h" x3 T2 \' k' \
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。  
9 \, F1 U: F/ `; T- ^/ y|        |        |                                                            
" ?! V% B7 j+ E. x# a/ p( L' }|--------|--------|------------------------------------------------------------2 z6 n! ~- |, H
|  可变  |  可变  |  图像数据字段                           7 Q0 a( |3 M3 H9 ^# K6 j0 k
|        |        |                                                            * M: P+ N+ }9 b  o
|        |        |  该字段给出了 (高度)x(宽度)个颜色表项索引,每个索引   
) K- h8 x  R8 D4 R- O5 C0 Q  W! h) b|        |        |  以整数个字节的形式存储(典型的例子如 1 或 2 个字节)      ; f  i6 H+ D- n8 o3 E( @
|        |        |  所有的数据都没有符号,对于 2-字节表项而言,低位字节是     
; U: j8 \+ M, E0 G: I7 k" K$ w|        |        |  先存储的。                               ( p' L/ ?4 b" N& H1 {  w2 ^' `
|        |        |                                                            
$ }8 m6 L) |, v. P1 t9 H-------------------------------------------------------------------------------4 i7 o) Q- x6 @: H  k, c8 d6 z
# a2 ^  B1 ~: b

. Y5 o! S% x5 t7 ~' J) P1 l
4 R" k6 U8 x5 i1 V# n6 j--------------------------------------------------------------------------------& H# ]% Q# a$ x4 o
|数据类型 2: 无颜色表 rgb 图像                                 
2 T& E# q5 Q9 Z! `& U7 Y|--------|--------|------------------------------------------------------------; t) M8 J2 p3 ?7 s: O
|   偏移 |   长度 |                         描述                              # Q+ Z) [. Z# r- p1 y) W
|--------|--------|----------------------------------------------------------+ |* m- T9 u& x7 Q
|    0   |     1  |  图像信息字段( 见本子表的后面 )的字符数
" H: {- G) k! l: d" F|        |        |                                          
5 Z6 j, }5 c' o/ `& e# A|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度
8 t5 f% j. [' }/ `" U|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的
7 E0 D1 ^+ \- [/ M5 g( H2 t5 w+ f|        |        |  信息字段。
+ n/ X0 B' f3 M0 q|        |        |
- e' a2 _" b8 P|--------|--------|------------------------------------------------------------
3 {' \1 v3 r9 M0 K; T% y6 h( s|    1   |     1  |  颜色表类型$ g$ p, ?1 z( ]! v# D, E
|        |        |                                                
1 `& g1 }. N. t- L. {/ n|        |        |  该字段的内容或者为 0 或者为 1;0 表示没有颜色表,1 表示
9 v& x+ _) j* ]% }' [0 S|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。5 ]" ?* \4 y) \7 z1 v& P
|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射2 f% b" V! O$ \1 m& l
|        |        |        中的第一种颜色- s5 Z! k6 g( q5 G& Z: q
|        |        | : O% X+ o' S* o8 \2 o4 [+ {
|--------|--------|------------------------------------------------------------8 y- f. l- K6 }" A9 W) X8 X: `
|    2   |     1  |  图像类型码( W; v  ?+ P) z- ?' W( P6 X
|        |        |                                                     1 q) D$ f* O1 b- ]6 I5 p+ S
|        |        |  该字段总为 2 , 这也是此类型为格式 2 的原因   
, R5 ~) i$ v* f/ x3 K|        |        |  % ~" J4 u  y* Q% J3 ]* i: u/ G( a) Q
|--------|--------|------------------------------------------------------------
+ ^( h# D1 J0 G|    3   |     5  |  颜色表规格+ _5 U' @) k) |
|        |        |                                                         
1 \  @+ c3 s6 D! N, t5 W5 S8 x) C|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下% g& z5 Z. D$ H
|        |        |  
" Y$ ^7 R7 b% }5 f|    3   |     2  |  颜色表首址
: P: M9 }; B1 Z3 ~|        |        |  颜色表首元入口的整型(低位-高位)索引. ^8 v+ u. Y2 }, E
|        |        |                  # x9 s' Y8 u; K3 d
|    5   |     2  |  颜色表的长度; s% u$ `7 T: B2 N0 ?4 ?$ ?! s
|        |        |  颜色表的表项总数,整型(低位-高位)     . l; @; ^+ i" T9 T$ ~5 H1 ~6 A
|        |        |                                   & Y' r( ~* \7 k/ ^; H
|    7   |     1  |  颜色表表项的位(bit)数
& L: E4 ?& O! H|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA% D5 |* Y) Y% _! _
|        |        |  
, U5 R! U) M0 h3 I( T|        |        |                                                           
* R2 H& b$ F+ {% I|--------|--------|------------------------------------------------------------
; u8 Y4 z/ ?- T& r: E|    8   |    10  |  图像规格
" V8 A4 L: E9 V5 ?( Y|        |        |                             8 A2 B+ t: A0 h
|    8   |     2  |  图像 x 坐标起始位置      
: d: @3 |+ h6 y|        |        |  图像左下角 x 坐标的整型(低位-高位)值
, w! S9 g' M6 w5 E8 L5 W/ _|        |        |    Z! }1 p/ @# q, R5 W7 V
|        |        |
- F/ @( g; b$ `: X' x8 b" E0 x& w|   10   |     2  |  图像 y 坐标起始位置( X$ k; Q+ Y+ {/ h3 h  g, t
|        |        |  图像左下角 y 坐标的整型(低位-高位)值5 i+ t- g5 B# V9 F. X& y# w
|        |        |  6 K5 ^5 n# g' b8 b
|        |        |; z+ X6 x* u6 ^
|   12   |     2  |  图像宽度
( g% B1 q/ r4 h0 p|        |        |  以像素为单位,图像宽度的整型(低位-高位)值
- r, c) y, K, h|        |        | * S- G( l3 \8 ~, p& h* j2 ]7 `
|   14   |     2  |  图像高度
5 Q% j1 J' S* L& L|        |        |  以像素为单位,图像高度的整型(低位-高位)值+ d3 |: m6 z1 |) H3 i
|        |        |
& s& D3 J8 O" z0 `6 T|   16   |     1  |  图像每像素存储占用位(bit)数
  b& T3 H1 C( E: e( W# i|        |        |  它的值为16,24 或 32 等等决定了该图像是 TGA 16,TGA24  q& S8 T6 j  K) q5 D& I3 ]
|        |        |  TGA 32 等等; u* E- J5 o! c, n$ T
|        |        |
1 S& u! p* o% _3 a4 w$ p2 d$ L|   17   |     1  |  图像描述符字节
1 y# p. R! y: n2 a" @" P& j& n, P- W|        |        |  bits 3-0 - 每像素对应的属性位的位数;对于     TGA 16,! m( x) J6 z; K- c
|        |        |             该值为 0 或 1,对于 TGA 24,该值为 0,
- g, R' w: j5 M! ~4 O% _|        |        |             对于 TGA 32,该值为 8
4 ?5 G) q( ~$ N& f. U5 c: b|        |        |            
2 {* s7 Y9 z' D7 a, O, g|        |        |  bit 4    - 保留,必须为 0
3 K+ d( o" `& x0 \1 J|        |        |  bit 5    - 屏幕起始位置标志( e" X4 ?/ r& ]2 R! J
|        |        |             0 = 原点在左下角( R2 S( c$ R. A1 D6 Y! F# P# U2 x8 ~
|        |        |             1 = 原点在左上角. p  m: x) K' O* D% S$ e3 v
|        |        |             对于 truevision 图像必须为 0' u# S9 n1 m' L# _' f* B4 H! b, P
|        |        |  bits 7-6 - 交叉数据存储标志% L8 L- G; V3 k
|        |        |             00 = 无交叉                                   8 [  _, L& Q( V% N7 y
|        |        |             01 = 两路奇/偶交叉                        
- B3 _- c8 ^$ g9 p|        |        |             10 = 四路交叉                              
0 ^3 ?' Z9 |( {: D! S% a% ~7 f|        |        |             11 = 保留4 X7 A1 O% L) ^* u" J. }
|        |        |                                                            ' D- v2 C& G3 c- i0 M
|--------|--------|------------------------------------------------------------5 F# I  I/ n* b! X
|   18   | 可变   |  图像信息字段                                       
" B+ O" d8 l$ s! @# k5 ^|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   
0 z3 Y1 p0 A1 q& G1 w' a) U2 v|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
* e% h0 b8 w8 R& B6 f% }6 p|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   4 v: H( |$ [# X2 d
|        |        |  之后                              
2 j6 q! R/ {( X% `3 V|        |        |                                                            
6 g. H0 _  |  t1 _! l8 y|--------|--------|------------------------------------------------------------
1 C) i5 V  n3 z! L% g. Q|  可变  |  可变  |  颜色表数据                                                
. a; R7 X+ w4 x2 n# H: v% v5 @|        |        |                                                  g8 I% ^5 p7 @
|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取
/ m% h. R6 {! O9 f3 ]8 G7 u* c|        |        |  图像颜色表规格中描述了每项的字节数,为 2,3,4 之一
( i5 S# H4 q5 g6 i5 N# W$ K|        |        |  
* x* q) Z, v, g! N) ]|        |        |  
4 V. p/ N- C; D# r' G" H1 h|        |        |  " o: }) j6 @6 o% i# m8 @
|        |        |  
& Y# Q+ @8 n$ m, R- h|--------|--------|------------------------------------------------------------9 |- P0 u7 ^( V
|  可变  |  可变  |  图像数据域
2 E0 z; ^, _4 A5 ~+ o|        |        |                                                    * ?6 m/ N; G2 L( j
|        |        |  这里存储了(宽度)x(高度)个像素,每个像素中的 rgb 色值
6 o- {: y* U( P/ L|        |        |  该色值包含整数个字节
2 W* _1 V4 C. B) R. }/ [|        |        |  & c0 p! @. @- D% q3 N
|        |        |                                                           
1 W8 B+ V& r' ^# a- B( ]|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               7 A" K9 |% f0 a& ]0 S+ S
|        |        |                                                            # J  c% h# h5 a4 m( }; b
|        |        |  2 字节表项中,两个字节分解成如下形式:               8 `( Q/ O4 H: }/ U* R
|        |        |  arrrrrgg gggbbbbb                           8 {0 M; T" i% q3 z" n. D# K3 q& s7 B) a
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  + r- B! U& O1 w2 L- S
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位
( D; k7 y  R" ^7 a|        |        |                                                          3 L* h8 v0 G( }5 J% O- s9 Y" D
|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个% W( o( t; r3 r4 t$ E
|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象
: k6 u: K6 J9 a4 T4 Q% D|        |        |  TGA 32 类型的图像那样存储
$ Z) j, E) Q5 \1 @$ e4 F- {/ S* X|        |        |  
. C3 h& g. y) W|        |        |                                                         ' Z. j8 `3 L. t- ?0 u
--------------------------------------------------------------------------------
$ C% P9 b0 e, l$ X6 d. e1 _4 U8 @0 k' Z

. k1 ~0 g# y6 w
7 ~  {4 n/ B: N1 s6 D; y; C7 F! b5 w3 Q. b9 ~2 G
--------------------------------------------------------------------------------; i& Y+ r/ S6 n8 i
|数据类型 9:  runlength 编码,带颜色表的图像! E8 L2 a* w* u8 `% v. M5 A& S
|--------|--------|------------------------------------------------------------
. W' L  o$ f! T0 `2 S9 e& A|  偏移  |  长度  |                            描述* w' v1 L" S2 N
|--------|--------|------------------------------------------------------------6 I* [2 D7 ~) J! q
|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               9 r4 h+ S1 M4 N+ `4 f7 ~2 A: `
|        |        |                                                            
. o2 r2 [$ x! `* ]|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     
# b/ w0 q( q- F: X3 A|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     
* O% {4 j& @: Y, s+ b0 ?|        |        |  信息字段。   
% B5 h2 \  L0 m; K/ [$ Y0 F1 X|        |        |                                                            
2 r* q4 U( ^* b  e|--------|--------|------------------------------------------------------------) ]# a0 ?, T) X. ~0 f# I
|    1   |     1  |  颜色表的类型                                          
! {* a; Y7 J( t|        |        |                                                            $ E& v( e( i! h. E! ]
|        |        |  该字段为表示对应带颜色表的图像而总为 1
, k* n! B4 }- v) X) ], h" D/ X|        |        |                                                            2 m: O9 E: p; T. o9 [  C4 a
|--------|--------|------------------------------------------------------------; k6 T6 B* b0 V! C
|    2   |     1  |  图像类型码
: {6 v9 \$ l' j0 m6 s5 k; I|        |        |                                                            $ O7 z# O) v3 g( @
|        |        |  本类型该字段为二进制 92 j% O' ~* ~( ?% {" F% ]
|        |        |                                                            3 s0 \3 {; w' |( M
|--------|--------|------------------------------------------------------------& r% R0 r$ B0 ^& d& j
|    3   |     5  |  颜色表规格/ u! R* X7 x) S7 a* i
|        |        |                                                         ; y+ h! t' r7 n# A0 v7 R5 ?2 R( X* }
|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下
' I2 a0 r% U' \) ]/ G; j0 p1 Y$ q|        |        |  2 q5 C% C! f: O7 U2 a5 ~
|        |        |  
% F6 h  {& c  @' A2 d|    3   |     2  |  颜色表首址
3 I$ D% x1 \. v( B. I|        |        |  颜色表首元入口的整型(低位-高位)索引
9 Q3 m  Z. ]" u. T* h; p" F|        |        |                  
! ~/ \( A( r+ M9 Q* I|    5   |     2  |  颜色表的长度( m$ q' t; g. {) c6 _' k- }% n  y
|        |        |  颜色表的表项总数,整型(低位-高位)     9 o+ d4 {# j. h$ C+ U
|        |        |                                   
  Y7 l" K$ w4 X2 z|    7   |     1  |  颜色表表项的位(bit)数) c- q4 ]- h8 N% Q! K2 ^$ k+ N
|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA
/ o, c* P( t, o& T9 N; s! k|        |        |                                                           # U) Z6 \2 e9 f- K
|--------|--------|------------------------------------------------------------1 ]: X) q) M- [* W  \7 G9 Y
|    8   |    10  |  图像规格                                               5 [# Z" F: s' U0 [- ?
|        |        |                                                            
  Q/ V, [% x# J/ Z|    8   |     2  |  图像 x 坐标起始位置                                         u( L- K% u( U* z" d2 N
|        |        |  图像左下角 x 坐标的整型(低位-高位)值               
; J6 k" E& K/ I|        |        |                                                         
3 R& q3 R& L0 o, {$ S|        |        |                                                            
& x0 t4 o' k8 H) m) Y( E" S|   10   |     2  |  图像 y 坐标起始位置                                       
1 ?6 |# I8 ]8 `% h& M, d. }$ n|        |        |  图像左下角 y 坐标的整型(低位-高位)值               2 D3 X2 ^5 h; g( J  n; N
|        |        |                                                         
* m+ |) q: X. u4 J|        |        |                                                            
8 G2 r  X) H7 f|   12   |     2  |  图像宽度                                                   
. R" {) @; H8 z: c0 Y9 P& L|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           $ A6 r* R( D. u
|        |        |                                                            
& d- f! m; A* C& n0 q|   14   |     2  |  图像高度                                                   1 F% e( F5 E5 M, h% o( K
|        |        |  以像素为单位,图像高度的整型(低位-高位)值               
% ?1 m1 V( y* j* V) c|        |        |                                                            
1 F/ G6 e( r' U4 p: y/ Y2 R|   16   |     1  |  图像每像素存储占用位(bit)数                             ' Q% M% ^- q- }) j9 ^
|        |        |                                             , J) w( H$ {, j1 \5 T
|        |        |                                                            
  _3 m- F6 x9 q|   17   |     1  |  图像描述符字节                                          
) L" C( }# N; o|        |        |  bits 3-0 - 每像素的属性位(bit)数                   5 p+ `: V$ m, y7 y1 F9 c1 z  A1 p, j
|        |        |                                                        9 }! w/ `1 \: q
|        |        |  bit 4    - 保留,必须为 0                               2 x# i$ }6 s1 `! B& U; o7 ?# F
|        |        |  bit 5    - 屏幕起始位置标志                           5 L  J* p* {9 d4 e0 r6 H& ~/ W( G$ s
|        |        |             0 = 原点在左下角                       
  v% r4 `9 J# B2 ?4 H|        |        |             1 = 原点在左上角                         ) k& H& W6 _, p" O
|        |        |             truevision 图像必须为 0                         . s- Z& g# U8 _0 I+ L# F* f8 t0 p
|        |        |  bits 7-6 - 交叉数据存储标志                       ! ^1 b# N3 |" p" _# j
|        |        |             00 = 无交叉                                   1 _5 K" K; K' {0 j" Q: G; t
|        |        |             01 = 两路奇/偶交叉                        ; ~8 T8 W; Y0 u6 \
|        |        |             10 = 四路交叉                                 |# {( u) l# C
|        |        |             11 = 保留4 H4 `- H8 @# [* F: G0 u/ R
|        |        |                                                            
2 `! {- x% e" g1 k0 h|--------|--------|------------------------------------------------------------: T7 P/ m7 ^$ b
|   18   | 可变   |  图像信息字段                                       
; J2 @) }) g4 z/ s|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   
. X2 s4 ^9 b9 J' @- I4 ?$ P|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
5 P  ^" H( ?, p7 F) _- m. H|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   ) B* E+ R" a4 N8 X& U+ \$ z
|        |        |  之后+ V9 b7 K# p! r2 d2 \
|        |        |                                                          $ ?4 z. z# t6 M' P7 j% U8 N
|--------|--------|------------------------------------------------------------6 O0 P2 T$ T% Z% j: m- o
|  可变  |  可变  |  颜色表数据                                                7 D3 H8 n1 D5 Y. |/ \) q6 d) W
|        |        |                                                            ( Z0 V* [7 s  }/ k" A4 p" N/ p- D
|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小      ' N$ w  n% M+ G. E+ w8 I! X
|        |        |  和数据项数目决定(在前面相应的说明字段中给出)            # U  x8 f6 y- F$ d. x
|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit)
/ b- M- R( N& z# \- B. {|        |        |  被认为是属性位。                           
  J+ q5 ^3 d6 u8 \/ Z/ e! ^* @( |8 k! v# }|        |        |                                                            : n9 f) `0 q2 W6 A' w; ?
|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,- A+ `8 T1 y4 P7 [5 S
|        |        |              字节 3 表示 RED,字节 4 表示属性           
3 {1 w, Y/ B4 l|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               
# w% i( m* Y+ G# a. U  `- Q|        |        |                                                            3 F, l& ]) L# T, a# w' T0 w0 S
|        |        |  2 字节表项中,两个字节分解成如下形式:               + U* S* t# U; y
|        |        |  arrrrrgg gggbbbbb                           7 X; s. n2 l& H; Q! b
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
% K7 l' }) [1 G4 e|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。
% ^) Y3 D- E3 ~; s+ }& s8 q|        |        |                                                            1 @8 t6 t! j6 ?5 ~6 y+ L$ k: h4 P) W) X
|--------|--------|------------------------------------------------------------( y: H4 W3 D( @& I+ F
| 可变   |  可变  |  图像数据域  X6 }& d( `: ?4 r! M
|        |        |                                                            7 x$ Y, T& `4 u8 D3 K
|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放
% u* J, q# S: ~! {/ h|        |        |  在数据包中;有两中类型的数据包:run-length 数据包,
( d7 ~: B# w, P, f6 [0 v|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,
5 \. m0 U& @& Y3 c4 Q* b|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域
; p' P. P! {: V& r5 _|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当
7 u, N2 N: L/ E1 c6 C  q|        |        |  它为 0 时,表示未加工的数据包, c( A$ v' n' o# Z' e
|        |        |                                                              P/ C/ L4 s; y$ U
|        |        |  对于 run-length 数据包,头信息含义如下
1 ~! k8 S6 V4 k% A) i- _|        |        |      __________________________________________________    & ~( A; I* y; ^9 L
|        |        |      | 1 bit |   7 位的重复记数减一
: B& Y6 P* e! n' [  G& ~1 q: P: H|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |6 g6 e( v$ r2 G
|        |        |      |       |   的运行大小为 128,(译注:原文为     |
/ C0 N! G3 K( Z# `# w1 N|        |        |      |       |   the largest run size)          |  
2 H" Z$ d# a2 P1 C) r3 f( [|        |        |      |-------|----------------------------------------|* Y. _* S4 u! e
|        |        |      |   1   |  c     c     c     c     c     c    c  |
$ b/ M% c2 M; d' z+ ^|        |        |      --------------------------------------------------
3 o7 W% Y7 {8 U( h|        |        |                                                        / c; t5 ]) K9 i8 Q- Z9 z
|        |        |  对于未加工数据包,头信息的含义如下
+ h, d: i+ K) v! u: e( ]|        |        |      __________________________________________________
, Q5 |) K. |7 g9 U|        |        |      | 1 bit |   7 位的像素个数减一                   |( q- P! c; {# L$ y
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |
, P3 k" X0 t1 K4 l8 ||        |        |      |       |   类型的一个数据包中像素个数不能大于   |! e0 ~8 n# t, Y2 M, D  V
|        |        |      |       |   128                                  |0 G7 L; r9 }! w( J
|        |        |      |-------|----------------------------------------|" q0 {$ C$ Q# ?  l6 ?  D
|        |        |      |   0   |  n     n     n     n     n     n    n  |
  E! c8 v/ b4 O, e6 Y|        |        |      --------------------------------------------------9 Q' e+ [7 p1 y% d/ I
|        |        |                                                        1 L: n, G5 A. U
|        |        |  对于 run-length 数据包而言,头信息之后是一个简单的1 M5 l: w* P  B  h: |; ~9 f
|        |        |  颜色索引,且假定该索引被重复头信息中低 7 位表示的次数
' {0 `, e# `, d; C" i$ }2 q|        |        |  run-length 数据包也许会跨越扫描线
2 D) O) v) \3 f. J1 {4 y9 z) B|        |        |  (扫描线起始于某行结束于下一行)0 h( Q$ E( Z) z& x" Y; s7 W& x, m2 j
|        |        |                                                        
; `2 e3 @5 A2 G0 W3 Y2 j; R' c5 m2 M|        |        |  对于未加工的数据包,头信息之后是颜色索引(数值由头信息2 [; N' F7 W9 l1 h) z0 X- Q
|        |        |  给出)该类型的数据包也可能跨越扫描线4 k+ _* E; Y) F
|        |        |                                                            ' F. s0 }+ f/ u2 u  H  v
--------------------------------------------------------------------------------
9 s) X/ c7 h! |9 ?+ A$ ?; x* `$ @
) N" H" \8 Z# v& q- F7 O1 H4 u
8 |$ N" ?; j+ Q( I$ a7 V3 w  E1 d; s+ N/ ~( @5 }5 k' \' Z4 I# y
& O) P2 u* r  V0 F
--------------------------------------------------------------------------------
5 ^* _0 _3 D! {1 B|数据类型 10:run length 编码,rgb 图像
/ g- j2 m; s) i8 t$ |+ ^6 W- t|--------|--------|------------------------------------------------------------
' [/ h" t& o4 i. x  U|   偏移 |   长度 |                         描述                              4 ~! V7 _" O! x+ I9 z1 j
|--------|--------|------------------------------------------------------------
, h0 {/ K6 x, {|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               
, O/ M( C8 K8 K3 G  M. r|        |        |                                                            0 J& r6 l/ Q  L/ [: ?5 i
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     5 d- B; K) H: J( l+ I
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     ) J" l# P  L' t
|        |        |  信息字段。   
" R! ~% ^% v+ f: `: c9 k|        |        |                                                            , x5 C3 x0 P  B0 W1 X3 G4 y( Z! f9 j
|--------|--------|------------------------------------------------------------" L8 |' w$ n9 M- h: Y: l
|    1   |     1  |  该字段的内容或者为 0 或者为 1;0 表示没有颜色表,1 表示
, F" d7 f6 a  r/ n$ X7 J6 m! v|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。* r) Z, x) H2 C. _$ `* D( M: M
|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射
: J/ d, j- ]' X|        |        |        中的第一种颜色
6 C' X6 O/ x! E|        |        |                                                            - U( e. d. W( y- J3 K/ C* x* [
|--------|--------|------------------------------------------------------------* J9 c1 L' E9 Q+ M9 ?! \1 ~
|    2   |     1  |  图像类型代码% e$ ^( C- A2 f
|        |        |          # k- s9 K1 T% k4 v6 v2 a
|        |        |  本类型该字段为二进制 10
) R" v) n0 v5 m3 b% o* Q|        |        |                         7 V' y- Y' V: s- Q# _
|--------|--------|------------------------------------------------------------5 J. J4 F9 T+ D4 s
|    3   |     5  |  颜色表规格+ f& N5 I- a+ {5 G$ w7 m
|        |        |                                                         
0 s4 M2 X; X# @' _! k$ C4 ?|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下7 v- L1 T+ m; d7 [" u! h
|        |        |  
% R+ F" ?  w0 j9 A# K6 q|        |        |  2 z5 u$ q3 p  Q3 n
|    3   |     2  |  颜色表首址- T' |, x8 p" V2 o' K5 {& V
|        |        |  颜色表首元入口的整型(低位-高位)索引
1 L4 k1 G; \2 _! C5 E, K|        |        |                  3 H+ t' S  [9 Z7 I
|    5   |     2  |  颜色表的长度
' f3 `6 ]: \% Q2 F/ x: R5 g2 ^|        |        |  颜色表的表项总数,整型(低位-高位)     8 T! w5 v$ x% m  J* I
|        |        |                                   
- i6 z$ ^3 e& ?* x0 {" X6 c) X|    7   |     1  |  颜色表表项的位(bit)数7 E7 N5 V6 t$ x: h) A3 H4 f
|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA
! C3 X+ s  J2 o" F% U/ O9 _|        |        |                                                            
; S# Q' T& c7 K5 p|--------|--------|------------------------------------------------------------
' h/ m  r  A' P8 C: ?" A! j|    8   |    10  |  图像规格                                               8 ^9 |, E; g: ?1 x( X, a
|        |        |                                                            9 J% W3 c; U9 k' r7 @: W
|    8   |     2  |  图像 x 坐标起始位置                                       
$ R& q% o8 E) i4 v* r) a" Y4 O|        |        |  图像左下角 x 坐标的整型(低位-高位)值               # |  H3 u& {& h( s  O. \
|        |        |                                                           e; J2 E7 F8 S9 M* k
|        |        |                                                            
, o3 U, X  n9 p- k9 H; u|   10   |     2  |  图像 y 坐标起始位置                                       % Z3 F( K, D0 A6 _3 N) d  l
|        |        |  图像左下角 y 坐标的整型(低位-高位)值               0 A4 _: p7 F+ a0 ~, t, t
|        |        |                                                         
& l4 O; ~9 U/ m& e* |6 o" Q|        |        |                                                            
" ]; o- a* P4 o8 G/ R& H|   12   |     2  |  图像宽度                                                   ) U0 ^( n% R& r7 }+ H) d5 [
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           
* _! }8 `9 g4 ^1 T9 D|        |        |                                                            - E9 K' n' U% ?* |9 ?5 b% Q) b
|   14   |     2  |  图像高度                                                   
! \% z/ x1 U0 V+ n1 v|        |        |  以像素为单位,图像高度的整型(低位-高位)值               3 O$ J3 H; u3 R0 h2 N
|        |        |                                                            7 n. _* Y& W. X8 d: B, r, g+ n7 w, ~
|   16   |     1  |  图像每像素存储占用位(bit)数                             " R! y* }- r# V3 ^/ ^" W% N- H5 w1 V
|        |        |                                             
2 @) U% Y$ T/ `- V2 g|        |        |                                                            0 |) r, P  D% N8 [, y3 K/ @3 r
|   17   |     1  |  图像描述符字节                                           8 s# S& u) K. f0 f" T2 u
|        |        |  bits 3-0 - 每像素的属性位(bit)数                   3 c2 `' r' ~& v" C1 V9 S
|        |        |                                                        . ?7 }, V4 N/ i
|        |        |  bit 4    - 保留,必须为 0                              
0 i8 D4 r4 s( s# h2 n' x|        |        |  bit 5    - 屏幕起始位置标志                           
, Y; x7 D2 M& p  S|        |        |             0 = 原点在左下角                       , }( P' M* w6 Y0 g9 j
|        |        |             1 = 原点在左上角                         1 I2 Q: b# D% _% g( _, C
|        |        |             truevision 图像必须为 0                         ; Y$ W2 K' Q, q) ]$ o  B$ b, ^
|        |        |  bits 7-6 - 交叉数据存储标志                       
2 y$ v9 d! k( y" P, L|        |        |             00 = 无交叉                                   
$ O& w( S( P" }5 A|        |        |             01 = 两路奇/偶交叉                        ) [# G$ j8 H4 _  E2 U5 S( T$ M
|        |        |             10 = 四路交叉                              
& L& Z( i3 G5 x6 O, {% i! ^$ L|        |        |             11 = 保留                                   
+ j% _' p  p+ U4 r|        |        |                                                            
  J) ~9 S0 i  p( o! {7 O|--------|--------|------------------------------------------------------------# _5 y8 U* o1 [0 D) F( o5 ^% _
|   18   | 可变   |  图像信息字段                                       ; x2 r" L+ N8 H# Z4 a4 [0 c2 Q9 l
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   ' a  }3 g: o5 ?) |3 ~" U. I
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
3 B* f4 B  @. c+ ~+ R7 [+ ~+ S|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   
  Z1 N( B1 F+ |, b! Z& `% M- h4 l" B|        |        |  之后6 I) n. v7 f5 q2 u' G2 a+ b
|        |        |                                                            3 k0 D  W" c! F" r8 j
|--------|--------|------------------------------------------------------------
0 v( \9 J" Z8 b1 r|  可变  |  可变  |  颜色表数据                                                / W) I- e" C9 \, c7 _
|        |        |                                                
) q1 t* m" K1 B5 D& x! `|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取# y" P' s  Z- O8 \. e, ~8 A( F
|        |        |  图像颜色表规格中描述了每项的字节数,为 2,3,4 之一2 D: J* C) e3 T5 m- X; P
|        |        |                                                            
/ n) K2 n: U" B7 e: V0 i. @|--------|--------|------------------------------------------------------------
1 h$ c3 ^* s: ^; J3 z! |7 U3 _& I; R| 可变   |  可变  |  图像数据域& d9 w. z8 i- M+ z. _6 v
|        |        |                                                            
: K, n  ~* r0 y+ W* u3 l1 D|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放
5 x+ z9 j& x/ d4 o. C/ f7 L9 N$ o|        |        |  在数据包中;有两中类型的数据包:run-length 数据包,
" i3 ]( B/ H- @% @/ w|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,
. B% A! n' H8 Y! J* A|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域/ D0 H3 y6 d' h9 s# h. a
|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当
1 D, k% v4 j2 _( v* ~|        |        |  它为 0 时,表示未加工的数据包! M: u8 @, j$ w2 |% Z* @( W
|        |        |                                                           % Z- \& z  ?6 l1 K7 u
|        |        |  对于 run-length 数据包,头信息含义如下% \+ f2 e: N8 Q) \- R/ v
|        |        |      __________________________________________________    4 V" O, I5 ^: _
|        |        |      | 1 bit |   7 位的重复记数减一
) L* H& P: V$ |& ^|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |" s5 @2 h; y: U5 T+ \  N
|        |        |      |       |   的运行大小为 128,(译注:原文为     |
+ g2 B5 D9 {* I& l' A" K1 V|        |        |      |       |   the largest run size)          |  
$ T& T& D* s& W4 e0 @5 S2 d|        |        |      |-------|----------------------------------------|
! I5 @/ v; ?- W|        |        |      |   1   |  c     c     c     c     c     c    c  |+ C8 c: t3 G5 U
|        |        |      --------------------------------------------------* i$ ]" o. p5 f, U+ s2 m& C
|        |        |                                                        
* M2 a5 N0 H* a|        |        |  对于未加工数据包,头信息的含义如下8 q9 }7 s. p: W1 `
|        |        |      __________________________________________________
+ s# C$ C! d' y1 a$ H- z|        |        |      | 1 bit |   7 位的像素个数减一                   |7 F# b0 X* b; n, ^% a  h! k
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |7 h0 N( q- l& B; K, n  J. x
|        |        |      |       |   类型的一个数据包中像素个数不能大于   |
" {3 c5 H+ r, d) B5 r|        |        |      |       |   128                                  |
$ B" Z: Q" \, y8 X|        |        |      |-------|----------------------------------------|$ |0 n! {/ t& }. n& T
|        |        |      |   0   |  n     n     n     n     n     n    n  |
+ I6 H4 U# D% c! a|        |        |      --------------------------------------------------
) ~% y, |* O1 H  i5 a|        |        |                                                            4 `8 w3 v3 ^/ i4 l& `
|        |        |                                                            
7 q7 s! b- {6 ~|        |        |  对于 run length 数据包,头信息之后是一个简单颜色值,
6 [  X( d5 ]0 X9 r1 W|        |        |  且假定该值重复的次数为头信息中记录的数. R, q* V4 U) y' J6 S+ s' M: F
|        |        |  run-length 数据包也许会跨越扫描线; x% n- z. N5 X. r
|        |        |  (扫描线起始于某行结束于下一行)5 {. k/ ~* O; Q1 T4 W) `# x+ y
|        |        |                                                      
; S8 X# P8 R/ P  K! m7 E$ K2 F|        |        |  对于未加工数据包,头信息之后是颜色值(数目由头信息指出)1 x8 Z) J+ O+ S9 f
|        |        |  : Y5 r& N/ D- }6 M; ^8 b, j
|        |        |                                                # H4 P' M3 s. f; F9 K: b0 z$ k+ Y
|        |        |  颜色表项自身有 2-字节,3-字节或 4-字节几种大小(分别6 H) Q" H# s& z. D9 l7 @2 Z8 ~- f
|        |        |  对应 TGA 16,TGA 24 和 TGA 32)形式如下:
7 b7 o. h! a# {0 m|        |        |  2 Q* m  y' b; C" v8 ^
|        |        |            
" O5 M8 T* E4 c/ G) X|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               ( ^0 ~+ |6 w" ^! E; ]) U* v" C
|        |        |                                                            
. [: G7 ]9 h7 f) {; E|        |        |  2 字节表项中,两个字节分解成如下形式:               + o' I! X* |. `/ f9 i
|        |        |  arrrrrgg gggbbbbb                           
2 D- d4 {( r9 e|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
! G3 S" B" }/ G# G% ?+ h6 I|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位! O4 ^' B0 f% {/ R; n0 ~3 v" g/ T$ v2 ~
|        |        |                                                          " Q% l& {5 ~; S6 C" k
|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个
1 v) e6 l- v: L' |: ?. U|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象
7 T/ c8 u" A! D|        |        |  TGA 32 类型的图像那样存储; Y$ y5 a- e, c; \
|        |        |                                                            * [" O; H4 c1 Z$ n5 m0 m
--------------------------------------------------------------------------------
; Z0 e2 c6 y1 D& ]8 C* @: q& n7 }
<完>
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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