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

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

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

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

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

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

原文7 i, ]# S' J; O$ i- }
http://dev.gameres.com/Program/Visual/Other/TGAFormat.htm
- }' w+ _' T, T6 S# V+ E& Y  9 r: Q8 F& u2 Z+ L
根据david mcduffe编写的TGA文件格式资料翻译而成
) ~1 v9 h0 i& P4 V* x ( J, h$ Y) M6 u) z
本文档是为满足许多对 TGA 图像格式的了解需要而创建的。本文摘录自truevision 技术指南的附录 C,如果
7 }8 w7 Y5 d# j& q需要更进一步的信息,请致信以下地址:" }/ i8 T; A4 S- m) A9 {" W

1 i7 c; ]! S) T- j/ n9 |           at&t6 c' t0 D8 k6 k2 x! u' _6 v
           electronic photography and imaging center
3 b! w! N6 M3 W# j& u# C           2002 wellesley ave.# B5 D* _( x3 m4 d
           indianapolis, in 42619' ^* V8 k4 A, v& l3 @0 b
本文档不求全面,但力求准确。如果你发现了任何拼写错误或内容错误,请告诉我,( david mcduffe,
: F( F8 y( ?/ }0 s75530,2626 ),我将改正这些错误,谢谢。: z  _: y) G# L: X1 ~  V6 b1 d
3 K6 d* ]% Z% g
不全面的原因是 TGA 包含了超过六种图像文件格式,而其中的几种较为常用。 我选择了我现在使用的格式并
6 {4 y, g& s: R6 ^6 P. q3 M: H在本文中加以详解。 如果你需要本文中没有包含的格式说明,你可以与你的 truevision 代理商联系。  m# L3 b7 ?- C/ t3 \# o
对所有的 TGA 格式的文件而言,其第三字节(二进制整数)用来区别各种不同的 TGA 文件。下面列出了该字
5 y0 _# u' Q8 X6 s节表明的对应文件类型:
* _) M2 E7 q0 f& ~' |    0  -  文件中没有图像数据' H, L$ D' `& t* ^, t. N+ {4 V
    1  -  未压缩的,颜色表图像
( T; F: n% N1 [) [1 _    2  -  未压缩的,rgb 图像! [+ S6 s6 l% p0 ?: d" n& y. y
    3  -  未压缩的,黑白图像
2 o% t5 j6 R" B4 T6 A2 U    9  -  runlength 编码的颜色表图像, x' P! y9 |3 q! A$ U
    10 -  runlength 编码的 rgb 图像
( z" Z# B/ l! Y9 z1 c( g" f; J    11 -  压缩的,黑白图像
" Q6 a5 V7 s  g4 T3 {    32 -  使用 huffman,delta 和 runlength 编码的颜色表图像
1 y. k. ]1 k5 g3 v; p7 ?6 X    33 -  使用 huffman,delta 和 runlength 编码的颜色映射图像,4 趟四叉树类型处理。. a0 f% w0 H5 h% O, w
    本文仅仅描述对应 1,2,9 和 10 的文件格式。. v/ `  q% ^+ n( S# O: N3 ]
& y' H' X. J' p5 d! V: }
--------------------------------------------------------------------------------4 j' a2 k8 [4 \% ?
|数据类型 1: 颜色表(color-mapped)图像3 b" x% F. p1 v% b% L
|--------|--------|------------------------------------------------------------
) F# Y% J1 K' {& Y|  偏移  |  长度  |                            描述; O: E- K% g9 g; |' M. t
|--------|--------|------------------------------------------------------------
& |( L, o+ N7 G& t4 q|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               
. \! ?0 H8 ]3 D1 W- ]8 w|        |        |                                                            
+ W+ q/ v9 Z/ d8 z5 A; w|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     & k. {. `6 U1 K& ?; M
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     
4 Y9 ~' Z$ q3 O' K6 F0 n|        |        |  信息字段。                                   
2 V3 K) y# y) Z/ R, y, ~7 m|        |        |                                         
! y: M7 C8 N% \|        |        |                                                              l% }) [6 r! C& j) K
|--------|--------|------------------------------------------------------------
3 l, t5 T) i: o9 J|    1   |     1  |  颜色表的类型                                           ! \" r9 ?3 X/ o3 d# E- H: n
|        |        |                                                            
# v7 k* V; g- p* V0 K8 V: d' B1 T|        |        |  该字段为表示对应格式 1 的图像而包含一个二进制 1           " I( n5 B* M7 ^- F4 }
|        |        |                                                            " `4 v$ B; B% U, y/ H5 K
|--------|--------|------------------------------------------------------------
  g+ T# X& Q) L: z! X2 w|    2   |     1  |  图像类型码                                            2 ^/ F4 d3 o0 z# G
|        |        |                                                            - E2 W: c- _& Z0 R9 Q
|        |        |  该字段总为 1 , 这也是此类型为格式 1 的原因               1 ^. U4 M: x( J3 S
|        |        |                                                            
$ n* u9 c4 Z- B" f9 a|--------|--------|------------------------------------------------------------
) _1 ?  k+ g+ l, e|    3   |     5  |  颜色表规格                                       
; C7 n% ~* ~8 Q3 X9 E# `4 U|        |        |                                            
  n* v' o2 `- Y% t( h|    3   |     2  |  颜色表首址                                                4 g6 ~% ?6 Q1 ]# u, s! N
|        |        |  颜色表首元表项的整型(低位-高位)索引                ! ^# L! s* w3 ~8 z4 q& W, r
|        |        |                                                              h+ ^# P8 [- d$ m
|    5   |     2  |  颜色表的长度                                          
7 b" E( ]' Y# p; U3 A|        |        |  颜色表的表项总数,整型(低位-高位)                   7 V. L4 a6 q$ X: c; G. y$ k
|        |        |                                                            ' F2 f# c+ m. E. h7 a* c7 R' F
|    7   |     1  |  颜色表表项的位(bit)数                                   
; u/ t- D5 V& d|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA
1 x  L' x/ ^* u% H; o|        |        |                                     # |) D$ t: u6 P* n. g; T, H
|        |        |                                                            
1 U9 K# |5 r$ N) ||--------|--------|------------------------------------------------------------$ d0 V. T* ]& ]3 v7 M+ w
|    8   |    10  |  图像规格                                               
3 X/ K* o; T; Q3 y# x3 \) }; M7 s|        |        |                                                            
% c4 j1 x; x, F* {. W. e6 q3 F|    8   |     2  |  图像 x 坐标起始位置                                       
/ B  g: T1 s# o|        |        |  图像左下角 x 坐标的整型(低位-高位)值               ( d2 P% R1 K# V( D
|        |        |                                                         
* R; p% b8 \. E1 t2 f; L|        |        |                                                            2 Y' T" b/ D4 }1 N0 \& h( t
|   10   |     2  |  图像 y 坐标起始位置                                       " W% h$ _! y  T. r$ x
|        |        |  图像左下角 y 坐标的整型(低位-高位)值               # f( s/ |: Y. L$ s' D& V
|        |        |                                                         : Z: t- T  ]! [. F3 j0 ?2 }) C+ S8 r
|        |        |                                                            0 n  B6 W# K+ K: ^
|   12   |     2  |  图像宽度                                                   
8 h/ E% A9 ~3 ?' J- G|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           
  ~5 g' Y) |; J/ O* p|        |        |                                                            
+ J& S1 n) l. n& d4 o; Z2 M|   14   |     2  |  图像高度                                                   9 A# o% |2 p9 U+ i2 b$ k8 l2 l
|        |        |  以像素为单位,图像高度的整型(低位-高位)值               & m/ M3 S  _* y5 d* z1 M- o
|        |        |                                                            * ]/ K& F+ `, T& e( E0 `, D8 c
|   16   |     1  |  图像每像素存储占用位(bit)数                             / C9 j1 N* R  u; Y' Z. Z
|        |        |                                             
1 Q- F' U, r$ g6 U4 J|        |        |                                                            7 m0 K9 w7 _% v2 U* W& R+ s
|   17   |     1  |  图像描述符字节                                           , {, x* `# o+ _) F$ J( D
|        |        |  bits 3-0 - 每像素的属性位(bit)数                  
8 d, O8 h: o+ ?2 D# M7 K2 p* v|        |        |                                                        % Q4 H9 m. @% z# l1 W/ t# ~- B
|        |        |  bit 4    - 保留,必须为 0                              
- X, e! g4 T0 c- V# z( T$ b: I|        |        |  bit 5    - 屏幕起始位置标志                           
- b& _7 }3 ~+ z; {5 y- e( p2 f|        |        |             0 = 原点在左下角                       
/ z& P. k, H1 z- c5 p7 {|        |        |             1 = 原点在左上角                        
! M* S- Y- ~  B9 l  X6 x0 s|        |        |             truevision 图像必须为 0                        
( E! `$ }+ [) q' B|        |        |  bits 7-6 - 交叉数据存储标志                       
+ {& R1 W: G+ X7 n% V: S5 l4 R|        |        |             00 = 无交叉                                   # h. P  h9 T: @
|        |        |             01 = 两路奇/偶交叉                        % B- F6 }6 W2 @
|        |        |             10 = 四路交叉                              
+ q% a$ k0 v5 M. U6 n|        |        |             11 = 保留                                   
0 S8 G$ x4 N) g* n# ?5 i; [/ p1 K|        |        |  这一项应该设为 0,不要问我为什么                   . l' y$ l3 _( O, ~6 k
|        |        |                                                            % ?0 O# d' N* ^! |2 u* u# a6 W
|--------|--------|------------------------------------------------------------' I% ~! `8 g' I) i! v5 x2 N
|   18   |  可变  |  图像信息字段                                       4 w: y4 @% w+ Q2 O3 }' K
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   6 N1 a. H( i; m5 V
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以    * F: H. J% Q3 ~! h. i8 w' @
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   
6 P/ k& o/ }$ N" Z|        |        |  之后                              
% `1 V: g8 P& l. x7 r! a0 M7 ~|        |        |                                    , L1 D8 Y# f5 ]$ v
|        |        |                                                            0 N& _3 c; G! e" h. v1 v
|--------|--------|------------------------------------------------------------
2 o$ M# ?' w, p) S9 Z, h|  可变  |  可变  |  颜色表数据                                                9 H# Q) D! m/ D6 f
|        |        |                                                            
2 c+ w: o, ?8 ?8 e$ Z|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小      
1 Y$ \' z: n6 Q" P" q3 k0 t  j* _|        |        |  和数据项数目决定(在前面相应的说明字段中给出)            % J+ q5 a3 p( {9 F
|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit) 6 \/ d3 I) q9 w2 {
|        |        |  被认为是属性位。                             k, n  S% K$ ], p1 }) T1 V% B$ F
|        |        |                                                            
, x- `$ o6 a% J& o" q; W|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,9 c5 n3 `4 I+ H: t: H0 c
|        |        |              字节 3 表示 RED,字节 4 表示属性           8 M  _; x) {+ O; {$ _& {
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               
, v' N# K8 F% B|        |        |                                                            # p) Z& J8 R1 P, J( M, d* L
|        |        |  2 字节表项中,两个字节分解成如下形式:               
, x1 B% v) c0 O/ c  T3 m|        |        |  arrrrrgg gggbbbbb                             H" b  p% [: i
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
4 P2 X( W. j# F) A3 |) f|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。  
8 ^5 f7 ^$ F* A|        |        |                                                            
, ]: E+ u9 I5 ~$ ]4 ~! U' E|--------|--------|------------------------------------------------------------% X& @# C, n8 C8 E8 P6 b
|  可变  |  可变  |  图像数据字段                           7 k3 r) R0 W0 o% F9 f
|        |        |                                                            % }" }3 O/ |9 Q$ M; X
|        |        |  该字段给出了 (高度)x(宽度)个颜色表项索引,每个索引   
% n. A' Y4 K4 C|        |        |  以整数个字节的形式存储(典型的例子如 1 或 2 个字节)      
9 L' M# |; h% V/ _/ S- K|        |        |  所有的数据都没有符号,对于 2-字节表项而言,低位字节是     " w7 ?# u  Q" h0 P1 b3 ]4 t
|        |        |  先存储的。                               / G& I0 V! n/ V1 M- v: ]
|        |        |                                                            
) R% h+ V7 i; T! I- S9 v-------------------------------------------------------------------------------
2 _8 d- k: R! S4 Y3 G; j
, m" E, Y1 c' {. ]/ f4 A9 ^  d* t' i5 I; A! h7 z
1 [$ t; l+ p5 m  }* l! e  K
--------------------------------------------------------------------------------; ]# q3 o4 h/ p
|数据类型 2: 无颜色表 rgb 图像                                 
7 m( G) L0 w; B& ?1 a7 \* N|--------|--------|------------------------------------------------------------
+ ~, V2 q/ ^7 R. D# p$ ||   偏移 |   长度 |                         描述                              
! `) E9 [& c: s3 s+ i|--------|--------|----------------------------------------------------------( G2 r' M) p- O( f% k! R
|    0   |     1  |  图像信息字段( 见本子表的后面 )的字符数$ a2 S( N  P8 i( {
|        |        |                                          
' ], V  N3 p( I0 _  K2 Z' O* L|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度
+ G' [" t+ ?9 Q! [: g9 U|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的+ u8 G- y: y5 g' p- |
|        |        |  信息字段。6 V% n3 w3 S# J) f1 Y# ?* `
|        |        |6 y, s5 i) H/ q1 [
|--------|--------|------------------------------------------------------------" u8 W& k/ Q) q+ b5 V$ H
|    1   |     1  |  颜色表类型3 d6 H4 ?& w9 j- ^! |! }0 h: M$ w
|        |        |                                                
4 R1 S$ c2 d% u% e( Z! p! M2 X|        |        |  该字段的内容或者为 0 或者为 1;0 表示没有颜色表,1 表示8 \7 ]! V, E7 M# m* W1 j; E. C
|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。
$ p& g5 f/ h( x9 ?. ^  U|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射
! j$ @2 J' ^, v# `* \0 S# n|        |        |        中的第一种颜色! O" p% j  ?1 i5 G: Z
|        |        |
% F# V7 P6 U* @6 K% T% T|--------|--------|------------------------------------------------------------
) W$ S2 Q; F5 \. l6 I6 j- I% D" `4 z|    2   |     1  |  图像类型码4 R& l4 A, q+ v7 |9 N
|        |        |                                                     / ]( r3 `8 D( \3 ?
|        |        |  该字段总为 2 , 这也是此类型为格式 2 的原因    $ ]7 ]0 y! H& T, S. m4 q
|        |        |  
. w; F. `3 v  e7 b|--------|--------|------------------------------------------------------------
" ]) C! e, y4 K( |4 o9 g% w|    3   |     5  |  颜色表规格
: X) v* [3 Q8 a" c( b. x* G! X|        |        |                                                         
+ T3 @0 g, r- Y4 ^2 @  s|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下
, `; t5 L5 O5 I% h; }|        |        |  
- y: ^4 O+ R0 ~0 ^|    3   |     2  |  颜色表首址
  Z' `, w+ z2 }3 I6 l. n) f|        |        |  颜色表首元入口的整型(低位-高位)索引# d8 `8 O! K6 H7 k- t. o* i
|        |        |                  
# \; [! h3 ~$ n+ q8 ]; \6 }|    5   |     2  |  颜色表的长度
/ T& N% L# H! P3 v: h|        |        |  颜色表的表项总数,整型(低位-高位)     
1 V' V# G4 I8 x+ N; n) k|        |        |                                   
# e% w8 F; B% A* y: l& T5 [|    7   |     1  |  颜色表表项的位(bit)数3 J' t* Z6 T7 h2 i+ }- y4 A& c
|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA2 F% r1 n5 h# {8 ~- k
|        |        |  
0 u" I- o. o! n" R- n0 o|        |        |                                                           % k$ x( D8 p6 e( @+ T
|--------|--------|------------------------------------------------------------
( a6 Q2 b, u# X! o) E; B|    8   |    10  |  图像规格1 f: d2 ]9 Y7 A, E- M% k
|        |        |                             
8 Z2 ~, W0 [% c7 e8 R2 h|    8   |     2  |  图像 x 坐标起始位置      
- K4 P- ?; L3 `/ d2 K  Y. r# c|        |        |  图像左下角 x 坐标的整型(低位-高位)值+ d; Q. K% g1 O6 {" S0 z' i
|        |        |  
. p2 V5 L. ?4 c% j6 x|        |        |, R/ H# ^6 f; k
|   10   |     2  |  图像 y 坐标起始位置
+ s% W5 }& C1 A7 B* O|        |        |  图像左下角 y 坐标的整型(低位-高位)值
% Z6 M5 l6 H, }- x/ h1 K2 w$ F|        |        |  
1 t! n4 U& P7 U2 m: ^  X) A|        |        |% S+ b4 A. O% \+ z: [
|   12   |     2  |  图像宽度 9 c4 u' ?/ W  b3 L  O- p: @
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值$ L1 x0 e9 _+ x+ a/ @2 E
|        |        |
6 [" i) A' J* S9 x. }' _# {|   14   |     2  |  图像高度
- |4 L3 ~5 ~/ H% M- M9 ?+ K|        |        |  以像素为单位,图像高度的整型(低位-高位)值$ p* `6 S: H# k- ~# J
|        |        |5 k& G9 ]3 ]7 S7 s* Y* P& s7 A$ d
|   16   |     1  |  图像每像素存储占用位(bit)数9 a0 K# D% n9 U" v
|        |        |  它的值为16,24 或 32 等等决定了该图像是 TGA 16,TGA247 B, b9 f, o) Y# B2 [' k/ |
|        |        |  TGA 32 等等/ \5 w" h7 z9 d3 N
|        |        |& M9 m+ _/ S$ P- M8 n7 |8 a
|   17   |     1  |  图像描述符字节% z) P' E3 |% S
|        |        |  bits 3-0 - 每像素对应的属性位的位数;对于     TGA 16,
5 S+ [. S/ J% q8 {! f4 b2 q: c3 n|        |        |             该值为 0 或 1,对于 TGA 24,该值为 0,
8 |$ }6 L  ~% k. S$ D|        |        |             对于 TGA 32,该值为 8* Q0 [* h  R6 X' ~# I$ T  M  a
|        |        |            
8 u: u3 c; N: d* @|        |        |  bit 4    - 保留,必须为 0/ k, t+ C% r9 z+ i8 O
|        |        |  bit 5    - 屏幕起始位置标志* ^; o% g4 {/ z' a# J: @
|        |        |             0 = 原点在左下角
3 F7 I  B/ N; W& L$ R1 @* T|        |        |             1 = 原点在左上角
+ m( |! s  K! v- K8 T6 Z0 s  K|        |        |             对于 truevision 图像必须为 09 m8 A: D+ U/ q
|        |        |  bits 7-6 - 交叉数据存储标志7 C7 A) E, V, E
|        |        |             00 = 无交叉                                   - b: f: A/ r$ C, F0 a
|        |        |             01 = 两路奇/偶交叉                          B7 p1 Z9 ]- u) I2 q
|        |        |             10 = 四路交叉                              
' m: \# [7 ]7 p+ P% L' R* z|        |        |             11 = 保留" k# @/ E% u6 H) |6 r* j
|        |        |                                                            5 J. ^$ b! U: P  Y7 o7 @
|--------|--------|------------------------------------------------------------
3 q; v& z+ \. E( r- \( C|   18   | 可变   |  图像信息字段                                       ( v) {1 T) M/ |! ~1 c( U
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   
$ e& t$ ]* V3 l0 N  H( n- f- q|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
1 P  G* W8 N( e" m! ]- K' P: B& X$ {|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   & H" \% w& m! t3 w% Y8 P
|        |        |  之后                               7 G+ z" M6 B  h, i- C8 C4 G. N* P
|        |        |                                                            
2 j5 }, N# C) s|--------|--------|------------------------------------------------------------8 H$ }- P2 g0 c( I( f' M* M
|  可变  |  可变  |  颜色表数据                                                
$ u  K: Q3 \0 b|        |        |                                                
9 U: _- C* d7 R1 v|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取8 s/ n8 c- p: L& T+ W" A* l
|        |        |  图像颜色表规格中描述了每项的字节数,为 2,3,4 之一
% R, |# Q; y7 r* s% }. o0 b|        |        |  
; B1 o) F4 D! S, N1 s( S" m|        |        |  
6 I0 N' a6 E3 g3 \1 [/ \5 `|        |        |  
* S* t) T$ m& _|        |        |  ' I, v* A- w2 ~# C9 G% ^% G6 }* K
|--------|--------|------------------------------------------------------------
: j/ W- G/ A0 f+ f, m|  可变  |  可变  |  图像数据域; ^; \  D2 g7 P
|        |        |                                                   
) h  S+ t+ \& x5 a1 |; ||        |        |  这里存储了(宽度)x(高度)个像素,每个像素中的 rgb 色值
- @: F' @9 ~+ @1 [|        |        |  该色值包含整数个字节% R' O/ {7 }, H  ]. I: E! E4 S
|        |        |  
/ l. c; A: r+ E0 w. N4 h. F|        |        |                                                           
; P' V7 I6 h6 k1 B|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               
0 B+ Y; y- \, ]$ Q' ^+ C|        |        |                                                            
  r7 _& P. Y% F0 H|        |        |  2 字节表项中,两个字节分解成如下形式:               0 R7 |! M3 w& o+ \1 X4 }6 j/ O
|        |        |  arrrrrgg gggbbbbb                           
/ f' w# t! _) ^$ d|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  2 Q" j5 y: [- V0 J# d, a( Z
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位
$ H8 }7 V* _3 ^! b, @|        |        |                                                          + O7 |$ f- e, B# ?' s8 f3 D
|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个
& E1 e7 U& ?* n( w. ^|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象' b9 F! G$ K, o+ A$ b
|        |        |  TGA 32 类型的图像那样存储+ i% u4 x% w# Z$ q
|        |        |  $ D1 ^; @( @/ _' [" M3 E6 b& F
|        |        |                                                         
& W* y, k4 f+ Z( r, H; w6 H4 Y--------------------------------------------------------------------------------
0 V" L& K9 R' C: Q9 \
6 a! b+ U4 m" @2 S& b2 v' O2 O& I) [& ?4 q6 b
; C5 m. O: J( @9 i9 w5 Z" f

* t2 F$ v' \3 o8 h$ E--------------------------------------------------------------------------------3 ]$ K4 H, T- ^( m
|数据类型 9:  runlength 编码,带颜色表的图像
# Q, j6 Y8 V" t: l! t: L$ b$ D|--------|--------|------------------------------------------------------------
* K* A: l, S# T: k9 e|  偏移  |  长度  |                            描述. W) y. f) ^, x/ p
|--------|--------|------------------------------------------------------------3 V9 P% B* @2 b7 c: w
|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               0 ]& {0 v$ F9 S% b; n
|        |        |                                                            + T3 l5 F, M2 O1 N! l
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     
1 x% Y4 k+ U& N7 D$ Q* w|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     
' \# h' i" u9 _9 \% x' ~|        |        |  信息字段。    4 c  D+ M; D$ \# q# O' y6 \( I) e2 F
|        |        |                                                              Q0 U3 [8 t6 ]) _+ v! {
|--------|--------|------------------------------------------------------------+ h7 I4 u) Q! ^& f& i
|    1   |     1  |  颜色表的类型                                          
, }) w1 }* K( P6 R' S& R5 d$ V|        |        |                                                            & ^4 {3 I" z* L2 M9 @) B$ D4 `
|        |        |  该字段为表示对应带颜色表的图像而总为 1 0 ~0 N- z" u' M& a6 ?; z6 @
|        |        |                                                            
! N4 q. ^5 J. C" B1 u|--------|--------|------------------------------------------------------------/ c' r( `9 e" n# g# f+ M6 }
|    2   |     1  |  图像类型码% u( M; S) B1 v6 L1 @9 A( ^) H# p
|        |        |                                                            
6 V) g' d* U5 z3 R- J* g|        |        |  本类型该字段为二进制 9
" `' H3 X. _1 X6 i- W% \|        |        |                                                            
, `- W0 v* Y. q( j/ |# d# W|--------|--------|------------------------------------------------------------
' n, c3 [7 [1 c" O: X1 N. w4 f8 Q|    3   |     5  |  颜色表规格6 j3 ~! o. ~/ I# m/ y/ a9 P) C
|        |        |                                                         + q/ |! D2 c! I. r/ O6 y' B' X& q# @( \
|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下
% h8 o* [  C+ C8 j& y  R|        |        |  7 N7 k9 ?$ q0 b' u, V4 |* G
|        |        |  1 Q' ~5 l1 \7 S7 u' E) G1 y) Z
|    3   |     2  |  颜色表首址+ |1 p  n7 E3 ^& p! r
|        |        |  颜色表首元入口的整型(低位-高位)索引
3 W. B& ]" F: s# m" ~9 o|        |        |                  
5 g) B" X- T2 J% W; U0 U. R$ q|    5   |     2  |  颜色表的长度
: z; J' Q8 U3 v+ a|        |        |  颜色表的表项总数,整型(低位-高位)     , g7 Y$ O& r& Q
|        |        |                                   
6 X4 R! U5 X5 V& K/ F. E|    7   |     1  |  颜色表表项的位(bit)数
; L- S5 z/ ?5 O|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA* U" e( _8 K: a8 E# d
|        |        |                                                           
: M6 f5 C; ]/ n|--------|--------|------------------------------------------------------------
& f0 ~0 ~% m& W0 x* K|    8   |    10  |  图像规格                                               ; b3 D9 [. |" s2 a: _/ u
|        |        |                                                            - l) o2 h. z+ t, H6 X( h$ e
|    8   |     2  |  图像 x 坐标起始位置                                       : o' _5 g, |$ |; `3 c
|        |        |  图像左下角 x 坐标的整型(低位-高位)值               
5 S/ J2 T: Z) `7 d|        |        |                                                         
: [7 L. K% |4 \7 I: d) T|        |        |                                                            
) |/ q, C5 z$ Z- E  x|   10   |     2  |  图像 y 坐标起始位置                                       " |7 G4 C6 p' P+ C1 o& i
|        |        |  图像左下角 y 坐标的整型(低位-高位)值               : t' c3 C5 C* S
|        |        |                                                         % h5 L; w, v" N
|        |        |                                                            $ b" i1 b! Y. q/ m8 q  F
|   12   |     2  |  图像宽度                                                   9 u* @  |$ N& N: d
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           * H* }& ^# e$ B1 X  `- {" D" @
|        |        |                                                            7 y* f! ^8 C% v* r. ~/ ~- T! v8 t
|   14   |     2  |  图像高度                                                   , N0 P$ @" d8 O- ~* k
|        |        |  以像素为单位,图像高度的整型(低位-高位)值               
& D' l. T. v" d* l4 p|        |        |                                                            
: a/ @8 L* l+ G  q1 y|   16   |     1  |  图像每像素存储占用位(bit)数                             
% ~% J% B/ A. ~# B|        |        |                                             
+ q$ F  ^' `6 k# a) K|        |        |                                                            . _! Z6 T5 B* y; u5 G- o* @
|   17   |     1  |  图像描述符字节                                          
) ~$ c0 N* T9 O) C! X& w, O" g|        |        |  bits 3-0 - 每像素的属性位(bit)数                   4 K$ v& q8 L& d6 ?7 D$ a; S; L! R
|        |        |                                                        
" V+ e! t& p$ P' |8 s|        |        |  bit 4    - 保留,必须为 0                              
: b' l# Y% n, o$ \6 C  Y3 X|        |        |  bit 5    - 屏幕起始位置标志                           
5 k  P5 F, A( O/ i2 V- s0 c|        |        |             0 = 原点在左下角                       
" Z7 o0 K* P9 D1 b" D|        |        |             1 = 原点在左上角                         5 z9 E5 X  g& k! R
|        |        |             truevision 图像必须为 0                         # p! O% [! L& a; H& ?) i
|        |        |  bits 7-6 - 交叉数据存储标志                       $ J( l* _; O0 d7 d
|        |        |             00 = 无交叉                                   " [( q5 Q/ ^* u' x
|        |        |             01 = 两路奇/偶交叉                        
0 z& g! x# t% x5 L1 J! B|        |        |             10 = 四路交叉                               2 N5 R# x7 [- |" k: o3 o5 }) M5 a% j
|        |        |             11 = 保留7 C0 n4 {) @3 H4 w
|        |        |                                                            4 _8 L# A8 ]: B% L; T- R/ b
|--------|--------|------------------------------------------------------------4 t; m1 F6 E/ u" \! r
|   18   | 可变   |  图像信息字段                                       * P- P" o4 `% j& T$ _3 j) w
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   9 P" o3 U7 G# g! _$ ^
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以    8 W  S. q* v/ I5 V- ^4 {
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   
$ A! G) B* Y% H. V. I4 J8 o|        |        |  之后  e0 I4 G  l$ f+ x8 y: _$ `) \
|        |        |                                                          ( m/ ?+ F* o" f. L$ A( F
|--------|--------|------------------------------------------------------------& m( z4 m4 F4 X
|  可变  |  可变  |  颜色表数据                                                ! f: ]9 E" f; z5 Q$ i
|        |        |                                                            
) [8 c& Z7 v' x) t1 u|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小      
6 U# n' _7 I% V0 _|        |        |  和数据项数目决定(在前面相应的说明字段中给出)            
9 D/ ~3 i& U6 r4 Q6 _2 o( J|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit) # U; t; ~. @/ R& V4 y
|        |        |  被认为是属性位。                           * `0 b3 k" |# ~/ [) M4 y
|        |        |                                                            
0 _3 ?3 Z3 k% A9 Y% ^6 i|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,# F- R* H- e7 c2 d: w$ l
|        |        |              字节 3 表示 RED,字节 4 表示属性           
2 U. x& f7 |4 J) x|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               
3 }8 K( l$ A. T3 A" ^4 l2 F: ~2 S+ N|        |        |                                                            5 B' b2 w0 U# g' Z& b$ a
|        |        |  2 字节表项中,两个字节分解成如下形式:               2 _- \( V2 t$ {7 b$ l: D
|        |        |  arrrrrgg gggbbbbb                           ! _, O9 n7 a, ^4 L
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  * N( m9 x7 C! T
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。/ {7 N/ |% N7 m" D% T4 I* w& k  s& V- ^. g
|        |        |                                                            
3 \6 U) r0 F2 G# S% V) E, G1 u! ||--------|--------|------------------------------------------------------------
3 T8 q8 Y9 X$ {| 可变   |  可变  |  图像数据域
" t  ]9 I. c( E% B4 [/ z$ d|        |        |                                                            # C9 e3 f" i. v6 `
|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放, z! z8 _6 R! ?1 d) o
|        |        |  在数据包中;有两中类型的数据包:run-length 数据包,* W7 p1 j9 ]; I7 S3 a7 b
|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,
- {% \# E3 |; j; N# I/ P) _|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域& L. v7 I+ F. A+ c8 u, S" P" T
|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当
0 e& a$ E: b- ^, A% `" b" g|        |        |  它为 0 时,表示未加工的数据包$ Q; [) P& o' w! @' A
|        |        |                                                            
. D1 H) b9 q, C9 j2 {|        |        |  对于 run-length 数据包,头信息含义如下
. O" Z# L5 O! Z0 @( o5 }5 }|        |        |      __________________________________________________   
$ c6 Y' j: t1 \8 ]|        |        |      | 1 bit |   7 位的重复记数减一
& I1 ]# ]3 Z$ Q  v) x|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |2 D& G0 J. C+ h( u  N# _) y
|        |        |      |       |   的运行大小为 128,(译注:原文为     |
, f4 N3 S+ [  K0 f0 m7 p|        |        |      |       |   the largest run size)          |  
; L1 u$ \( @- `. y' v* ~|        |        |      |-------|----------------------------------------|% I0 ?& [. D; G* S  Y+ p
|        |        |      |   1   |  c     c     c     c     c     c    c  |. M* |0 q' o& n# R! n/ a- q+ {; @
|        |        |      --------------------------------------------------, J3 R8 U/ V4 T+ Y
|        |        |                                                        " g! b; {# [$ O# d! Z' m: }
|        |        |  对于未加工数据包,头信息的含义如下# h. i" U, n' T: @( L8 m
|        |        |      __________________________________________________
- n# @2 k7 S9 H) V|        |        |      | 1 bit |   7 位的像素个数减一                   |9 n7 f3 R8 b4 W( p( f
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |+ c4 K- t5 D3 D2 ^' |
|        |        |      |       |   类型的一个数据包中像素个数不能大于   |: E: X) m( a& y' S
|        |        |      |       |   128                                  |
/ l* e4 R3 u( _$ F4 J; K|        |        |      |-------|----------------------------------------|9 n& d6 A* M. Y/ M" v& P9 h
|        |        |      |   0   |  n     n     n     n     n     n    n  |7 G2 w  t" H  }& {; B" Z* y
|        |        |      --------------------------------------------------' ~* |' `2 s% [) k5 f% D
|        |        |                                                        
1 h9 H  h! i1 T% r" `/ G) b|        |        |  对于 run-length 数据包而言,头信息之后是一个简单的
% y/ c2 [8 n/ D|        |        |  颜色索引,且假定该索引被重复头信息中低 7 位表示的次数# `* R0 D$ N* J+ X3 J5 V, v: Y9 Q
|        |        |  run-length 数据包也许会跨越扫描线& q! Q, N) [( u! U0 K
|        |        |  (扫描线起始于某行结束于下一行)
% w" {: {! ^' O+ h' V|        |        |                                                        
5 r9 c+ Q* a- M  D5 G7 s  I. t|        |        |  对于未加工的数据包,头信息之后是颜色索引(数值由头信息
% k& a& c3 ?( _1 Z+ f7 u7 J9 l0 R|        |        |  给出)该类型的数据包也可能跨越扫描线
$ g9 Z3 ?" [6 A! J|        |        |                                                            " B1 K6 p  k( b- L! d, a: Q
--------------------------------------------------------------------------------
6 `  W7 Q# K, i8 l8 I
8 _. {( ~1 r& S( I, n* X
8 J9 R/ \5 p+ W9 W# Z3 h6 r# K% A* {
8 w+ P" ~4 l- p2 F5 F4 K( D  T# h
--------------------------------------------------------------------------------, W: X7 g. O! j2 V  K
|数据类型 10:run length 编码,rgb 图像
! j& Z5 H/ N, B$ t" g7 G|--------|--------|------------------------------------------------------------
" C) ~& a4 O7 _. @% ^3 N|   偏移 |   长度 |                         描述                              
, Z" V# R; j  D7 H- Q8 o|--------|--------|------------------------------------------------------------
: J. s+ c9 G/ T4 X8 L! M4 p7 D" {2 c|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               
; Z$ {# I$ c/ O/ [+ D3 J|        |        |                                                            
+ x9 L& k" l* T8 f|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     
; u# P$ l, X4 b8 J. L# C& j|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     
/ l  [% H) p& e* |/ y, Z3 D|        |        |  信息字段。    / ^! p2 A& G5 L
|        |        |                                                            / h5 }& s, H0 B( F
|--------|--------|------------------------------------------------------------
. Q( }, U4 w  F8 i! [: P4 Z|    1   |     1  |  该字段的内容或者为 0 或者为 1;0 表示没有颜色表,1 表示% \1 l2 t  G5 F( R9 ~( k. @
|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。
$ `/ M2 _0 V% p3 e4 U5 F& `5 x|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射  Y2 E2 b6 F; _3 D+ d
|        |        |        中的第一种颜色
4 x# f- J! {+ H( `|        |        |                                                            
3 {4 A; m% h- ?5 H|--------|--------|------------------------------------------------------------1 e$ O) Z. [' h- [( }
|    2   |     1  |  图像类型代码& m/ A0 M- |8 L: e' D! p+ v( |
|        |        |          5 t+ c+ W5 U! ], ?& r
|        |        |  本类型该字段为二进制 100 m) K: P6 a; |& L
|        |        |                         3 q3 u/ N6 m& k+ A' B
|--------|--------|------------------------------------------------------------- a" \5 h+ L, s: x; V
|    3   |     5  |  颜色表规格
- K3 k' _8 }  ?1 p|        |        |                                                         7 J3 `  X( q) T5 `1 I6 w
|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下3 G4 j9 p- K) X! a; s. u
|        |        |  
4 R! Y# j9 O6 Z|        |        |  3 D: X  A$ y/ k3 A/ A
|    3   |     2  |  颜色表首址0 t. e$ F0 k( K. c( k( I3 `
|        |        |  颜色表首元入口的整型(低位-高位)索引6 `1 h" E2 T: c8 B8 k- c8 H( C" v0 A' b
|        |        |                  0 O& R. o3 c$ t: _1 u* t
|    5   |     2  |  颜色表的长度
4 Q; M% C: _6 ?9 j  t; w|        |        |  颜色表的表项总数,整型(低位-高位)     ' U5 j0 g  f5 c+ A! T0 N# S& M
|        |        |                                   
& ~, C: @$ W: E5 ~' m. T/ y|    7   |     1  |  颜色表表项的位(bit)数
% c3 }. v1 P) {; X- `  @0 g4 {- ~|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA/ @9 O4 d, Z; O  v" ?
|        |        |                                                            
, T5 H/ M, [3 `" y|--------|--------|------------------------------------------------------------* I- T2 h, L! l4 V) A
|    8   |    10  |  图像规格                                               
/ M9 K+ }$ H2 u) o|        |        |                                                            - v$ b- e- {, Q2 @
|    8   |     2  |  图像 x 坐标起始位置                                       3 @# m% I" A0 c, W
|        |        |  图像左下角 x 坐标的整型(低位-高位)值               
) x; X& A  Z" N. O! l|        |        |                                                         8 Q. |$ Q! c5 L
|        |        |                                                            
1 B* A/ i. {  ]/ h3 H6 H|   10   |     2  |  图像 y 坐标起始位置                                       
# E5 C* o: e5 {: |3 }1 q|        |        |  图像左下角 y 坐标的整型(低位-高位)值               
0 n6 O+ v8 \' P1 i( j8 M0 X# H4 `|        |        |                                                         7 ^; K4 j! K; c8 U
|        |        |                                                            
4 s' p, c1 {( L- R|   12   |     2  |  图像宽度                                                   
+ ~; N% T2 r# h, ~& B# Z/ M|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           
) c* h, r) ~/ J) f|        |        |                                                            " Q4 h/ q8 I3 Y
|   14   |     2  |  图像高度                                                   
; W9 r' x- v% w1 m4 x|        |        |  以像素为单位,图像高度的整型(低位-高位)值               
- h" y/ h& ^$ i6 c|        |        |                                                            
" m+ c% X9 E" k6 X|   16   |     1  |  图像每像素存储占用位(bit)数                             . h2 G/ K% @  i# t8 m! h
|        |        |                                             $ g- I& v5 j+ d: x; r* Q% W
|        |        |                                                            / l  B/ D/ Q- E1 l& Q( d: N+ E; N
|   17   |     1  |  图像描述符字节                                           % N( k5 o5 ]& ^- p- l" z  U9 c
|        |        |  bits 3-0 - 每像素的属性位(bit)数                  
, E  C) [# P1 ~% S' S/ _|        |        |                                                        
. r/ i8 H" E3 f1 h# w) m. E|        |        |  bit 4    - 保留,必须为 0                              
  e5 W, \  G; Y! j; I8 N9 }2 m|        |        |  bit 5    - 屏幕起始位置标志                           + H6 {& x9 p$ g4 S9 W3 Y
|        |        |             0 = 原点在左下角                       4 H9 k# p/ n. b1 r- P9 C6 s, g; V
|        |        |             1 = 原点在左上角                         0 Z, k, ~, p- G. L  L) A$ `1 a  ~
|        |        |             truevision 图像必须为 0                        
6 ?$ ?4 P  j( J+ G* c* i5 d|        |        |  bits 7-6 - 交叉数据存储标志                       / W; r! c5 ?! A! Z1 g+ A  f, r
|        |        |             00 = 无交叉                                   
, U- I# [/ M8 z+ U|        |        |             01 = 两路奇/偶交叉                        $ f! r' x- b0 N- j; T; p
|        |        |             10 = 四路交叉                               9 j% P" p5 k; D, k* l+ E2 Z
|        |        |             11 = 保留                                   
  C! f+ \# ~( L) H|        |        |                                                            
9 \% I1 b9 o% H/ o. P|--------|--------|------------------------------------------------------------0 z/ m. {3 D& _; w/ I
|   18   | 可变   |  图像信息字段                                       / R5 X$ F5 N% f& e+ c( T
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   
; J& d7 [1 T* u3 l: z|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
; }/ h/ R1 K) U) I+ o6 X3 L6 l3 h|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据     S! u; `! X& i0 D
|        |        |  之后
& T* e3 B9 c) }% I6 M) J& ]|        |        |                                                            
: b; w! @7 P* r& Z; G9 z5 ?|--------|--------|------------------------------------------------------------
- v$ C+ t& f& C+ F6 p" Y|  可变  |  可变  |  颜色表数据                                                2 i# [7 B) s0 r- T; k& v
|        |        |                                                9 |" N4 U$ n# e; U' B
|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取7 V7 A7 n  S4 U! l* J
|        |        |  图像颜色表规格中描述了每项的字节数,为 2,3,4 之一
2 [. _0 u8 h& U* M$ B9 e|        |        |                                                            
/ t) a% f! e; ~! G|--------|--------|------------------------------------------------------------
' j- N: K' ~  ]  N# i| 可变   |  可变  |  图像数据域
# m8 H) q- e' v+ @$ _; ~8 c' [& N|        |        |                                                            ' K0 O% e4 ?+ E* v
|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放, P' v$ e) L/ I1 P: a
|        |        |  在数据包中;有两中类型的数据包:run-length 数据包,! j: K4 O9 k; R* N
|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,
, {5 y  ]8 q  H! T|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域! ?! \& _# }, q5 y* n' U
|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当
2 I2 |4 T  @$ @|        |        |  它为 0 时,表示未加工的数据包
- r) g- ?4 i2 `3 i+ d- w|        |        |                                                           2 m' U0 V# L; |5 H' r
|        |        |  对于 run-length 数据包,头信息含义如下- r# `1 F" e: _% |
|        |        |      __________________________________________________    " [( P  n& x- d" l
|        |        |      | 1 bit |   7 位的重复记数减一
# f; S) y1 J: h* ?4 b|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |$ i  b6 A1 ]  H: W1 O. `0 y
|        |        |      |       |   的运行大小为 128,(译注:原文为     |* M7 O5 A4 Q. O+ `( z$ ^
|        |        |      |       |   the largest run size)          |  
& u% d5 H4 x, }) [* q( l|        |        |      |-------|----------------------------------------|+ A: K) z# e9 L1 r; _; b4 E
|        |        |      |   1   |  c     c     c     c     c     c    c  |
) d; f5 ?1 f8 o) I$ ~+ y* s|        |        |      --------------------------------------------------) ^' H% ?& S9 @( F, P6 K( f3 t
|        |        |                                                        0 P: m4 f( d2 @& Y3 C) A
|        |        |  对于未加工数据包,头信息的含义如下9 ]5 [' T3 {$ Y+ X4 b* o
|        |        |      __________________________________________________1 Y- Q/ `/ j  v
|        |        |      | 1 bit |   7 位的像素个数减一                   |
% v. _. y- T  s& K7 K|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |8 a7 E! W" N- ~
|        |        |      |       |   类型的一个数据包中像素个数不能大于   |
  s/ b/ |  Y) T+ R|        |        |      |       |   128                                  |( e) U) e  [4 }$ k
|        |        |      |-------|----------------------------------------|
: h9 \. q: r3 G) s& m# _|        |        |      |   0   |  n     n     n     n     n     n    n  |9 V) b2 [4 w' H3 H  |1 a
|        |        |      --------------------------------------------------
, |, L, Z* ]% j+ K& P3 M* P|        |        |                                                            
$ q/ X! ^; l; a8 ~& I|        |        |                                                            6 `$ C: t& n/ M3 Q. J- Z
|        |        |  对于 run length 数据包,头信息之后是一个简单颜色值,
/ U6 d5 L- I5 a1 P" E|        |        |  且假定该值重复的次数为头信息中记录的数3 Y9 q. t5 k! S6 z5 H$ s% t
|        |        |  run-length 数据包也许会跨越扫描线
5 Q! u5 A; z, A) u" x3 l|        |        |  (扫描线起始于某行结束于下一行)0 _* g/ O. V* q$ _9 i
|        |        |                                                      
4 O# }  ]4 Y5 r! S6 n|        |        |  对于未加工数据包,头信息之后是颜色值(数目由头信息指出)1 }' q6 I/ p; O& j3 y; f) o& w
|        |        |  
3 i. o+ f6 W9 p1 Z' w- ~|        |        |                                                
, |4 G. V5 y$ R|        |        |  颜色表项自身有 2-字节,3-字节或 4-字节几种大小(分别
" o5 g; v" W$ R/ a6 t|        |        |  对应 TGA 16,TGA 24 和 TGA 32)形式如下:
) f* ?  ?, Y7 N: \, h( c5 r7 F|        |        |  1 \5 Z2 C( }; F
|        |        |            ' R2 h/ w8 b( m# z1 G: B  _
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               5 a4 g3 b6 @0 A# U
|        |        |                                                            % C0 [3 Y% H0 T# p5 O, v: X4 [
|        |        |  2 字节表项中,两个字节分解成如下形式:               
! W+ Z9 N0 I5 s|        |        |  arrrrrgg gggbbbbb                           
' ^0 U6 m: j& H, X' L, V5 a|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  7 F7 @* I9 z7 {9 y+ q
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位9 n# K/ t5 Q7 @1 G! J9 e
|        |        |                                                          & i: ?( d2 y2 g# a
|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个5 L, |& \% x( j, J- ~& Z& }! L
|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象' s* b4 R# \, i5 B; t; f8 l
|        |        |  TGA 32 类型的图像那样存储
' ]' [; U) w- J9 G  m* M! Z|        |        |                                                            : m" G* H( k& W8 N! V1 K5 f
--------------------------------------------------------------------------------+ T' i4 T8 g/ ^3 U
" B8 y' K2 T7 p) e: ^- a! S. X6 }
<完>
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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