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

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

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

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

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

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

原文3 p' r6 h' f5 `) L, P
http://dev.gameres.com/Program/Visual/Other/TGAFormat.htm
) O( f# n0 E" H$ l$ n- W5 B, o  ! e) k* w6 e9 }! o
根据david mcduffe编写的TGA文件格式资料翻译而成' x( n9 M1 p" o, x
 
% ~! }- j; p+ H# ~) X: o本文档是为满足许多对 TGA 图像格式的了解需要而创建的。本文摘录自truevision 技术指南的附录 C,如果
. U1 Q; q- a! P' `7 k  M4 s需要更进一步的信息,请致信以下地址:
7 h+ q5 N' M) t/ b+ }. s# G1 \/ L/ ^0 l" b* ~$ E- L
           at&t! |0 o) n5 y: o) N- Q! ^
           electronic photography and imaging center* w0 W3 u. W3 H2 V' p0 _2 {
           2002 wellesley ave.
0 |& U9 U$ r8 w4 P0 N8 a. a% ?           indianapolis, in 42619
0 j5 [. d: [/ B, b4 w# z  I* g% w本文档不求全面,但力求准确。如果你发现了任何拼写错误或内容错误,请告诉我,( david mcduffe, $ W( L1 w0 b4 Q6 F. N6 D# z" k
75530,2626 ),我将改正这些错误,谢谢。
& b. J4 k3 v9 }' A
8 R- r" ~  S9 K0 p: R5 j. e; X不全面的原因是 TGA 包含了超过六种图像文件格式,而其中的几种较为常用。 我选择了我现在使用的格式并. x1 ~1 C/ R5 `& ]. Y! c) b
在本文中加以详解。 如果你需要本文中没有包含的格式说明,你可以与你的 truevision 代理商联系。6 T. C) V( Q$ L  X
对所有的 TGA 格式的文件而言,其第三字节(二进制整数)用来区别各种不同的 TGA 文件。下面列出了该字
# P  G# v3 k6 S3 L8 [  Q# B7 m6 q节表明的对应文件类型:
9 o( w  o3 r  E    0  -  文件中没有图像数据/ c, |+ S. n. }; T
    1  -  未压缩的,颜色表图像0 X. A+ G/ q" Q1 f- @' r8 k
    2  -  未压缩的,rgb 图像2 I/ d2 u+ `. p2 N3 l9 k8 X
    3  -  未压缩的,黑白图像: Z; t7 V7 I+ q; y0 V% D7 L1 |2 g
    9  -  runlength 编码的颜色表图像
. D8 j' X/ E1 |8 r  z! Q3 e' Z    10 -  runlength 编码的 rgb 图像2 k7 B5 K8 r! C0 ~1 F8 X
    11 -  压缩的,黑白图像, }. ]5 p3 X5 E( x$ X' s! W, C
    32 -  使用 huffman,delta 和 runlength 编码的颜色表图像+ _6 M, C8 W" f7 L9 H
    33 -  使用 huffman,delta 和 runlength 编码的颜色映射图像,4 趟四叉树类型处理。
* @: _$ q, u8 D+ r, S    本文仅仅描述对应 1,2,9 和 10 的文件格式。0 \  {# }( ^+ d3 q

( O  k5 L5 L: L2 S0 j3 d4 W--------------------------------------------------------------------------------
/ {. d, h+ @# q% L6 `+ }|数据类型 1: 颜色表(color-mapped)图像" B; a/ V, F) S: p) A+ x
|--------|--------|------------------------------------------------------------
6 T9 Z/ _% |: M2 Y, M7 ]% A% p|  偏移  |  长度  |                            描述3 A8 o2 P/ `2 f
|--------|--------|------------------------------------------------------------  l! J; P9 G& M2 ~" l$ Y3 l9 E
|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               
/ g1 t* P1 F* o- x* G5 l) b# `|        |        |                                                            
2 P7 \  X7 P* O& U|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     / o. a; a: N- Q7 ~
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     
0 k9 Z! W# J+ M5 [|        |        |  信息字段。                                   ( S! D  F0 x- h+ e3 @
|        |        |                                         
% q( ~, n8 U. c' _; {& N3 W$ ~3 ?; Z|        |        |                                                            
5 n0 p5 Q) m; ]" M+ @|--------|--------|------------------------------------------------------------
# W9 p2 _; ~+ q9 l7 e|    1   |     1  |  颜色表的类型                                          
( J, s* {) r' d( i|        |        |                                                            ! n; q4 o+ S$ ]) {
|        |        |  该字段为表示对应格式 1 的图像而包含一个二进制 1           
& N1 f4 F- p7 k/ i5 l* A|        |        |                                                            # K& T! c/ d# X* a: f8 y; G# Y( A
|--------|--------|------------------------------------------------------------6 g3 q/ V+ M/ }! n; f7 M
|    2   |     1  |  图像类型码                                            6 x5 J7 R6 x6 Y8 ~& c$ k1 v
|        |        |                                                            0 k6 \4 y6 o5 W6 \' s1 V; r
|        |        |  该字段总为 1 , 这也是此类型为格式 1 的原因               
  l3 e% g# p4 {5 t+ M5 W|        |        |                                                            ! k" `9 y3 H0 u6 d$ d0 t' A
|--------|--------|------------------------------------------------------------
8 N# T2 E4 p; G* z9 C. p- @|    3   |     5  |  颜色表规格                                       0 Q0 M4 j. c2 W; k! m
|        |        |                                            - B* ?0 B2 H; q$ G: ]5 b9 v0 ?3 H
|    3   |     2  |  颜色表首址                                                0 b$ A' ^6 O8 W" l, S
|        |        |  颜色表首元表项的整型(低位-高位)索引                4 b, t" i, D  _- Y' u9 J0 t! A! ^$ d
|        |        |                                                              @0 O1 \% Q2 \3 L$ R
|    5   |     2  |  颜色表的长度                                          
/ m* G' u4 ~& k|        |        |  颜色表的表项总数,整型(低位-高位)                  
& H- ?1 {- _, h6 d|        |        |                                                            
8 v# c: I( [4 M/ j+ l1 u|    7   |     1  |  颜色表表项的位(bit)数                                   
; x- ~( B8 V7 x/ @5 O|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA
9 W$ B2 @6 X, m$ m; Q|        |        |                                     ; I& ?3 G+ J5 h" Y6 D+ l
|        |        |                                                            " M: J* h: R) k8 i3 X8 P. I
|--------|--------|------------------------------------------------------------( d# X# s; i# |/ Y8 }1 m
|    8   |    10  |  图像规格                                               # O( O8 Q8 K1 s$ `, b/ i, q( ^
|        |        |                                                            
2 V' _7 B1 K  H% r6 ]& X# `' U|    8   |     2  |  图像 x 坐标起始位置                                       
1 K& U' Q5 k$ B% N: t8 G|        |        |  图像左下角 x 坐标的整型(低位-高位)值               
$ Y0 K  ]( h8 R2 B8 k- D|        |        |                                                         
* \  X/ A1 l0 @" Y8 o! q2 ~|        |        |                                                            
  B3 w- x* q- F; f  U3 I|   10   |     2  |  图像 y 坐标起始位置                                       # v" ^! u- q$ A7 I/ @" A- U
|        |        |  图像左下角 y 坐标的整型(低位-高位)值               
5 v) g5 B" Z# U& {7 x) I|        |        |                                                         
1 F2 N: j( V' i2 o& K3 W|        |        |                                                            
8 R1 k0 V% {; y9 l  ?& c+ a- Q% I|   12   |     2  |  图像宽度                                                   % |: L  E* E0 t3 [! j5 ^9 B
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           
+ [" n. C0 s5 L3 f9 ]|        |        |                                                            
6 Z# \0 K# r0 X0 l2 b* e|   14   |     2  |  图像高度                                                   / U+ w$ l/ r% [2 t
|        |        |  以像素为单位,图像高度的整型(低位-高位)值               ! c) Y. d* `* ]0 ?; e
|        |        |                                                            : d% G( [! D# a: Q( ?# @
|   16   |     1  |  图像每像素存储占用位(bit)数                             $ ?* s( d: e/ M1 I/ D- j
|        |        |                                             1 b" h# C; ~8 n" e$ X7 S% Y) C
|        |        |                                                            5 a5 O# y1 U# S0 ~1 t$ J+ ^
|   17   |     1  |  图像描述符字节                                           5 U; n0 r+ ^  u' ?) N5 V6 C. ]
|        |        |  bits 3-0 - 每像素的属性位(bit)数                  
* t) ?$ G% Y7 ]; Z3 \/ P|        |        |                                                        5 i7 S  G2 g/ Z2 O
|        |        |  bit 4    - 保留,必须为 0                               9 I: ]/ a# q5 E/ Z% e& H6 s8 I- j
|        |        |  bit 5    - 屏幕起始位置标志                             Y4 y6 P9 }  f+ Q
|        |        |             0 = 原点在左下角                       1 l& ?# D& O) W
|        |        |             1 = 原点在左上角                         - G$ W3 m- d& e9 Y9 B) X( `
|        |        |             truevision 图像必须为 0                        
9 s' N, J) w+ ^! V# ||        |        |  bits 7-6 - 交叉数据存储标志                       
# |* B- O( u7 m; X2 y/ n|        |        |             00 = 无交叉                                   8 h1 f+ o$ v5 W! n9 u5 |: ^; K
|        |        |             01 = 两路奇/偶交叉                        
4 i2 F( H  M2 @; }|        |        |             10 = 四路交叉                              
2 V( X4 f. b4 _. b9 \: s2 q- U# H|        |        |             11 = 保留                                   
/ n/ }; g) g! W7 a' L|        |        |  这一项应该设为 0,不要问我为什么                  
% v0 C) g, L7 \$ ^2 `* K5 A; b|        |        |                                                            
' z' J( a4 L$ M|--------|--------|------------------------------------------------------------) |: m4 C( ~  |. c$ y+ ^
|   18   |  可变  |  图像信息字段                                       
3 g* K5 b+ Q5 U0 ~|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   : p# U# N% a7 N
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
& v/ y" G) m+ r1 u' F|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   ; e- j% B  g, x; E
|        |        |  之后                               / l0 T9 j; j/ b4 j% z5 ?
|        |        |                                    
0 F' r/ n& X1 u5 I' f8 y: {9 e|        |        |                                                            
0 z3 p( y: f* q4 P! q|--------|--------|------------------------------------------------------------
+ ?5 P, z- ]/ E. n|  可变  |  可变  |  颜色表数据                                                ( U1 u" ?# H) f
|        |        |                                                            
0 R4 P! y4 S, x|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小      % i/ B6 H/ q7 o0 v. T
|        |        |  和数据项数目决定(在前面相应的说明字段中给出)            
! I1 m& l+ b+ B0 R9 y! h# L! W|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit)
) k- h; x0 W: I9 g4 u|        |        |  被认为是属性位。                           
( @. i+ S% S) [& \2 n4 C5 S|        |        |                                                            
& Q* m' X# g& b# E, l. S|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,
  ~3 R: V& ^1 C, b( h' q4 Q" w|        |        |              字节 3 表示 RED,字节 4 表示属性           
% I  @' s- t- `7 l|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               
1 P3 m; _/ J1 @: |9 a+ d|        |        |                                                            " [- u1 K; r% V& H+ k6 q
|        |        |  2 字节表项中,两个字节分解成如下形式:               
* B1 a: l$ G; h0 a  o% C2 n|        |        |  arrrrrgg gggbbbbb                           ) z! y% c! s. }5 ~
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  . O+ T6 D& v+ ^- ~: [2 T
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。  7 R& g1 l) e- V* y0 w
|        |        |                                                            + }" e6 C# r. s9 ]) `! u* Q
|--------|--------|------------------------------------------------------------& i/ [: N# m; T/ M$ \
|  可变  |  可变  |  图像数据字段                           
" |' \/ B' R0 S/ u3 ~|        |        |                                                            ! b% C$ W2 p' t! a# J' v
|        |        |  该字段给出了 (高度)x(宽度)个颜色表项索引,每个索引   
  d! X4 |% F2 A. J7 g: s|        |        |  以整数个字节的形式存储(典型的例子如 1 或 2 个字节)      
8 A) E( G7 t0 W! F% @; t|        |        |  所有的数据都没有符号,对于 2-字节表项而言,低位字节是     
9 o; _; y. q+ k# J+ Q. G* a|        |        |  先存储的。                               0 z& E3 }* L* g7 {2 k* P& P6 t
|        |        |                                                            
! D; a* c4 D) j( E# B: _! U8 L-------------------------------------------------------------------------------- _& j, `  e  m
* L0 r( \6 V; J, I6 b; G
) Q" a6 E' L* ~  w
; L! [: c7 f# h6 Z$ n
--------------------------------------------------------------------------------3 X; e4 o+ r* Q& r2 k7 S" v# q
|数据类型 2: 无颜色表 rgb 图像                                  7 @4 m, t3 q, t% Z, E" S! B
|--------|--------|------------------------------------------------------------
8 G, I& `& _& f$ z- w2 p3 S& w) z|   偏移 |   长度 |                         描述                              
$ {- a0 s& I  s6 A|--------|--------|----------------------------------------------------------  F5 b( n( M' @8 s/ c1 t
|    0   |     1  |  图像信息字段( 见本子表的后面 )的字符数
3 z# b3 N8 t0 P) c5 f7 u|        |        |                                          
/ @! S  q8 W9 a; P1 E|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度2 H; f. b! j& w
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的
  r% o0 c4 ~! }4 L0 \) A|        |        |  信息字段。$ q: |; R3 t' ~8 t! W# s: D
|        |        |
  H- v: E6 j" N: P|--------|--------|------------------------------------------------------------
: L0 G! ]+ r% d$ H- w0 _. s|    1   |     1  |  颜色表类型9 C) [7 a0 j6 h2 w0 G+ Q
|        |        |                                                
, g7 E7 ~$ J" j/ T$ y|        |        |  该字段的内容或者为 0 或者为 1;0 表示没有颜色表,1 表示  o! M9 `; J; w6 l, a9 q1 {! Y
|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。8 W3 Y) \* M* z9 d8 p7 E& P
|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射2 B5 [! y' Q7 q
|        |        |        中的第一种颜色6 e6 B0 V! o5 F% R
|        |        |
, O/ L  L. O# `6 S|--------|--------|------------------------------------------------------------
/ ^8 E8 }7 q7 v7 \1 X|    2   |     1  |  图像类型码! p- b! g# g- B) T  @+ a
|        |        |                                                     
; l# J$ @* K7 B# z|        |        |  该字段总为 2 , 这也是此类型为格式 2 的原因    2 J  A9 n2 }( B- n
|        |        |  
$ i. s+ h% f* L% ]# Y. C- n+ p# w9 f|--------|--------|------------------------------------------------------------/ L* w; C% h0 y' G: F, d
|    3   |     5  |  颜色表规格" C/ p6 \/ k; }% ~
|        |        |                                                         
# p# I6 Y3 o. b. S|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下& f/ \+ L/ P  S! s" ^: Z9 _0 u
|        |        |  * _& V# E; k' r3 r  _5 a* y
|    3   |     2  |  颜色表首址* o$ B2 O3 d# L  F& ]0 S9 F* E
|        |        |  颜色表首元入口的整型(低位-高位)索引
( f1 C, ^  L. F% R, X|        |        |                  * Y1 k6 q& d0 l" d& _
|    5   |     2  |  颜色表的长度
1 a8 d$ I# E& \. [( K. p/ E|        |        |  颜色表的表项总数,整型(低位-高位)     " p* f2 c) M9 S" c% j6 b& q; o0 s
|        |        |                                   0 W4 K, p  |3 x& n5 c, I
|    7   |     1  |  颜色表表项的位(bit)数& O3 T0 o, \" \* a! C0 m
|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA
/ L8 q0 u2 g: r' i|        |        |  7 L" y2 U" y/ \9 J
|        |        |                                                           
2 ~0 Y  w" s* Q/ G' K! M+ E# N8 b|--------|--------|------------------------------------------------------------! H) F4 W8 J* i$ L
|    8   |    10  |  图像规格
0 I+ |: K  a' a. O  U/ B( t|        |        |                             ! `! `4 U, ^# s8 ~* J. R5 b
|    8   |     2  |  图像 x 坐标起始位置       4 g, {; o$ S; t8 L
|        |        |  图像左下角 x 坐标的整型(低位-高位)值6 o* T- ^, b* G2 q  a( T9 l
|        |        |  % S6 H% B& @; H/ Z6 V$ i- s- Q
|        |        |
5 Y8 O! E, v% O: M% y0 h5 |/ g|   10   |     2  |  图像 y 坐标起始位置7 y7 I9 t5 S( Z( k/ i- e3 i
|        |        |  图像左下角 y 坐标的整型(低位-高位)值' i. x8 f, O) W4 h
|        |        |  9 R' u5 |! P( d* f% M
|        |        |# z4 _/ Q: p- j; o
|   12   |     2  |  图像宽度 / a3 k' m. z5 v$ e% S7 [
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值
1 g9 P- ^) x4 k|        |        | 4 l- z; Q2 K4 n9 O& n9 t0 p6 V3 R  X
|   14   |     2  |  图像高度
* \5 w  l0 y5 S' y; M2 B|        |        |  以像素为单位,图像高度的整型(低位-高位)值
, F/ D6 P; z  v9 b; N0 {+ T1 I|        |        |
* t% Q0 v& N( R|   16   |     1  |  图像每像素存储占用位(bit)数
9 _, G- i$ Y. ?7 T" ~( C, ^) B|        |        |  它的值为16,24 或 32 等等决定了该图像是 TGA 16,TGA24
" ^) R% n+ @3 _: {) q|        |        |  TGA 32 等等
7 B3 c$ K/ h: u|        |        |; d! b% c) p. `& i/ a% w
|   17   |     1  |  图像描述符字节
% N, W0 g1 S$ c/ ]  A! A( j, @; ?|        |        |  bits 3-0 - 每像素对应的属性位的位数;对于     TGA 16,
( `- S1 s# @- l2 p: g* ~; f|        |        |             该值为 0 或 1,对于 TGA 24,该值为 0,
3 r/ ~9 n6 f  `3 @7 G# W7 x6 z|        |        |             对于 TGA 32,该值为 8/ ?7 z4 [* T3 G, c* e
|        |        |            
- P8 @) o- n$ B|        |        |  bit 4    - 保留,必须为 0$ T; |2 I3 e: b9 m( H: e
|        |        |  bit 5    - 屏幕起始位置标志
& K" B7 X1 d+ ~3 x5 ||        |        |             0 = 原点在左下角
, O$ L- k3 f8 Z+ C' E" T  K|        |        |             1 = 原点在左上角* y! r6 R7 o& ]$ \' y- g
|        |        |             对于 truevision 图像必须为 0
6 J+ z4 A6 l: v: v& ^# n. Q5 ~( }|        |        |  bits 7-6 - 交叉数据存储标志% F# w1 j8 V/ I, j! o9 f. d/ U
|        |        |             00 = 无交叉                                   
# }+ ?7 I* n% r' T3 g/ L|        |        |             01 = 两路奇/偶交叉                        
/ I1 q1 F7 Z* d5 f4 l7 F2 ~|        |        |             10 = 四路交叉                              
/ s9 g1 e) v* U|        |        |             11 = 保留8 r3 \; X- t* o3 I. a! D
|        |        |                                                            # G2 H+ \' `; c% T1 E
|--------|--------|------------------------------------------------------------3 _0 O; D. D# F0 H' s" d
|   18   | 可变   |  图像信息字段                                       5 l% j& }$ D, }
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   1 x- l+ u) [7 s6 L4 ~
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
; m3 T8 m5 Q3 r$ p|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   & `; t3 F( O% g5 j' p5 R: m& ~
|        |        |  之后                              
+ B* P9 }) j- Z9 x; b# X0 {|        |        |                                                            , Z2 {9 A* B3 {  {5 U1 Y
|--------|--------|------------------------------------------------------------
) h8 J9 H/ D5 y# I& ?, ?|  可变  |  可变  |  颜色表数据                                                4 e. r1 e& B, T9 C; }
|        |        |                                                " X% Z( g/ p" Q  e: @4 A) G0 w
|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取
! ?5 U$ z; Z7 ]* o/ o. c9 h1 W( b( _% D|        |        |  图像颜色表规格中描述了每项的字节数,为 2,3,4 之一
( i( e1 [4 l4 c! J6 ~|        |        |  2 Q% U7 s' J" z' ]! W7 Z3 e
|        |        |  
6 ]2 V2 }: H! F1 U) L4 x1 K|        |        |  
; M. t0 w- Y, E- ||        |        |  2 S: T4 h- ?  a) z' k
|--------|--------|------------------------------------------------------------
9 s3 q6 ^# E, c/ g|  可变  |  可变  |  图像数据域
1 s# o3 p* {; w9 i% k- ||        |        |                                                    + D0 ~% j) _1 T( B- n8 M
|        |        |  这里存储了(宽度)x(高度)个像素,每个像素中的 rgb 色值
/ k1 ^- b, X+ p( h% u) y2 w|        |        |  该色值包含整数个字节
. A! D0 V4 H& d, p9 _|        |        |  ' K6 r! S! ^+ t, i9 W4 i/ L
|        |        |                                                           
/ k" H2 Z& q+ _3 ~( A3 d|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               
% h  T) t" \8 z( I|        |        |                                                            2 n9 V+ k5 l) S3 ]
|        |        |  2 字节表项中,两个字节分解成如下形式:               
, k+ u3 x( M- m6 `|        |        |  arrrrrgg gggbbbbb                           # c' S& [9 o0 a# M6 p$ z3 [
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
5 Y, U1 {  t, P+ Z|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位5 M! @( `/ r6 |4 x
|        |        |                                                          . ?+ o3 {/ r% l* J; I# l, p
|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个
6 l9 u! m( H% I1 e9 B|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象, g% I$ a/ X6 a+ W
|        |        |  TGA 32 类型的图像那样存储
# B( T' \% ]3 l4 s, ?* H* d|        |        |  # b; f4 L- N( ]! `
|        |        |                                                         , T* w; u* ^# P, P% W. b+ ^# P
--------------------------------------------------------------------------------
, L" K5 }7 I' a5 n- N1 K# L8 x: S  F# K3 G

- \2 f+ k1 Q! u% l2 F) n1 B8 o* O4 g2 u  f- |
$ Q* p, n$ q# {8 j2 {# X+ l
--------------------------------------------------------------------------------8 D1 R7 y' G; ^2 N; i, d* }* I
|数据类型 9:  runlength 编码,带颜色表的图像$ M5 b7 b9 U" R$ L3 y
|--------|--------|------------------------------------------------------------
  B8 j' ~& [4 P. N' d5 Q2 r! ?|  偏移  |  长度  |                            描述
7 W/ S. h, W2 t& a|--------|--------|------------------------------------------------------------0 b0 N, n+ v% B$ u- _# u
|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               
2 @, b0 m+ ^* U+ Z! J|        |        |                                                            
! Q- e) K7 M+ j2 R2 D5 N5 V2 M! S|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     
- U* r' i! d; ?0 F3 F; [|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     
0 z- f& ]# i% i- e9 p& j, H|        |        |  信息字段。   
+ g" W( i# D- d7 \% N8 |3 {|        |        |                                                            ( n( g/ ]0 B' |: D, {; @$ l9 T
|--------|--------|------------------------------------------------------------
# t2 w" W' g7 a9 }8 b|    1   |     1  |  颜色表的类型                                          
0 W* e9 B, c4 N3 e7 P9 p* g|        |        |                                                            
7 ^, Q0 C3 k) |3 Y' `. l2 B/ q* {|        |        |  该字段为表示对应带颜色表的图像而总为 1 0 J. X# d! O3 B% c4 c1 a
|        |        |                                                            
5 h: L0 ]5 z4 r) k# c: [& V|--------|--------|------------------------------------------------------------7 u0 d. X% Y4 _) Q) K0 N- g3 r0 H
|    2   |     1  |  图像类型码
* Z/ h6 u. T. L|        |        |                                                            * S& [* Q& B0 t% S" B& v
|        |        |  本类型该字段为二进制 9
3 R9 o3 k7 {& g/ l|        |        |                                                            
# ~3 e5 z9 H0 p# w|--------|--------|------------------------------------------------------------
7 T+ A1 z- O) N: U|    3   |     5  |  颜色表规格
5 _& M! x4 P; k( M% a|        |        |                                                         
" t! a, ^- ~; Q! n  a! w! I|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下( Y+ J* X! w# _8 i2 S& i$ i
|        |        |  
; s5 g1 G. v+ N* K: H|        |        |  
5 l; x  W- ^; {3 H3 I|    3   |     2  |  颜色表首址$ e/ ?+ r. d, i. [6 Q% f. G! z. }# I
|        |        |  颜色表首元入口的整型(低位-高位)索引1 I+ _& M, Z7 F; J9 U
|        |        |                  * y+ p5 b$ m7 c( A+ |8 j
|    5   |     2  |  颜色表的长度9 m( b, s" I' |
|        |        |  颜色表的表项总数,整型(低位-高位)     ; m2 M3 ^  t8 L
|        |        |                                   7 I4 D) y. O: I: s; e7 S
|    7   |     1  |  颜色表表项的位(bit)数
  c# R4 s" x9 X|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA. q+ b3 b+ {5 J/ w
|        |        |                                                           & @7 ~0 \/ R9 [. i' t2 M
|--------|--------|------------------------------------------------------------
6 X, F& d+ s9 K5 ?# Y: f* z|    8   |    10  |  图像规格                                               
$ _4 z8 J' m  x% @+ F% _|        |        |                                                            
; H7 J3 t2 W  s/ g7 E6 a! j|    8   |     2  |  图像 x 坐标起始位置                                       
% V! [6 N& [! C2 f( M( P" ~/ B8 j% T|        |        |  图像左下角 x 坐标的整型(低位-高位)值               0 s- A1 s1 a( S( @* F- D
|        |        |                                                         % |- C0 d! t8 F' p) `. D2 n8 o/ E- q
|        |        |                                                            
) T' F$ H; Q/ m|   10   |     2  |  图像 y 坐标起始位置                                       
" I3 x% g2 w; L0 ^, K3 X|        |        |  图像左下角 y 坐标的整型(低位-高位)值               
( _& e9 d' L' K; Z. G) C|        |        |                                                         
2 r3 c% @+ r  [, Y* [|        |        |                                                            
* d/ d* F7 f' v, k- S! R, i|   12   |     2  |  图像宽度                                                   # v2 @0 |  M: u3 G- t! Z' B
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           ' k  T5 F$ d( S- g! D* w% V  [
|        |        |                                                            
+ p- X5 C' H# i5 e' ~|   14   |     2  |  图像高度                                                   
; W; ]5 v; ~# T. L. s3 \! ]! t|        |        |  以像素为单位,图像高度的整型(低位-高位)值               + Y5 J1 u( [$ H" c& R3 T' `
|        |        |                                                            
7 u9 `& @$ ~0 p5 w6 d# B|   16   |     1  |  图像每像素存储占用位(bit)数                             3 }) U- |& u1 u- W( O
|        |        |                                               r3 b" p7 K9 P1 |$ e7 o8 x( e
|        |        |                                                            . Q/ T; F6 i( l5 ^: `
|   17   |     1  |  图像描述符字节                                           ' i' H3 S. Z" v+ q: K3 Y# g
|        |        |  bits 3-0 - 每像素的属性位(bit)数                   8 d% w8 A4 {- M) ^
|        |        |                                                        
& b) D" ?" h' o2 ^" ~8 i|        |        |  bit 4    - 保留,必须为 0                               # A& t9 T+ R  Y! w) O# V* d
|        |        |  bit 5    - 屏幕起始位置标志                           * ]4 `# Y3 I, Q/ [4 B
|        |        |             0 = 原点在左下角                       1 U, j2 H2 z0 N. a7 ?
|        |        |             1 = 原点在左上角                        
8 K: F! P5 g. ~9 c* c|        |        |             truevision 图像必须为 0                        
7 q7 R9 f2 I$ b/ d' I+ ?: c|        |        |  bits 7-6 - 交叉数据存储标志                       3 @3 l8 {6 X3 n. u) z& j! S+ f2 t; a
|        |        |             00 = 无交叉                                   ) D$ n3 \) I/ B" S
|        |        |             01 = 两路奇/偶交叉                        
& s% j* U9 z6 r  l: T5 H6 h|        |        |             10 = 四路交叉                              
! y3 Z# k5 I$ Y|        |        |             11 = 保留
/ v) e4 f# D' }: @0 m3 a, M|        |        |                                                            ! `. h8 S+ o" m4 ^5 P& q7 Z0 p1 a
|--------|--------|------------------------------------------------------------  x* j8 E/ o8 j2 b# E+ b8 M
|   18   | 可变   |  图像信息字段                                       * G/ I3 Y. i, v8 |( a9 R0 J
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   
- K$ [( Z5 k$ q: ||        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以    ! B0 I% R1 M! B4 a
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   # F: x, K0 J, k  m  J, f/ Y
|        |        |  之后$ Y- `. C6 f& B7 N, u! A- W# X  e
|        |        |                                                          , G( k: a: i% ^; V8 d7 m1 }
|--------|--------|------------------------------------------------------------2 x* V' w6 @3 |' \
|  可变  |  可变  |  颜色表数据                                                
3 l0 G4 U( f+ U: m2 Z$ k& Z6 J/ e|        |        |                                                            
; a/ [4 S$ V( K# l|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小      
8 x" @1 h* W7 q4 @$ _|        |        |  和数据项数目决定(在前面相应的说明字段中给出)            ) X  k9 p% E4 U6 P- p
|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit) / G2 B, P, [) B) W6 P5 q- u% k- T7 l7 S
|        |        |  被认为是属性位。                           
, O; b0 ]# e/ y5 Z|        |        |                                                            2 G5 }* N% ]7 J" O) ]0 p7 Q
|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,
# S; D* |% [) b|        |        |              字节 3 表示 RED,字节 4 表示属性           , m" E: I# {# m& ]
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               6 d5 j4 c! U1 U+ q8 K& y; u% v
|        |        |                                                            
4 n$ Z" a2 _: S6 d! h# T, d% j) N|        |        |  2 字节表项中,两个字节分解成如下形式:               ; e8 a$ ]  V4 s; ?
|        |        |  arrrrrgg gggbbbbb                           % L6 l! D) v( A1 ~8 |" ?9 F
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  ; [, d% o7 M2 ^% s
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。" l' Y2 v: k) F& D  C6 ]: M
|        |        |                                                            0 S$ h! S- C$ o4 d: G
|--------|--------|------------------------------------------------------------
8 ~  R! j3 d' k8 t! ?# H| 可变   |  可变  |  图像数据域* d; m, U2 W7 M
|        |        |                                                            
' j& ^9 D4 F/ t|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放
. D6 x( B7 g7 _( ||        |        |  在数据包中;有两中类型的数据包:run-length 数据包,
) t! V, u! \& l- t3 B|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,) s& M/ G* S7 [
|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域9 p( j3 p! ~* f+ e2 F
|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当) Q0 Y% Q  s" N4 a  b
|        |        |  它为 0 时,表示未加工的数据包6 c1 k+ G7 i0 J4 w5 a/ u* K
|        |        |                                                            7 b9 G7 }: ]! U4 m) T
|        |        |  对于 run-length 数据包,头信息含义如下
6 ?3 _3 x, g" b+ e7 d3 N' c; h|        |        |      __________________________________________________   
* @+ p! I+ E5 h& K6 n1 H|        |        |      | 1 bit |   7 位的重复记数减一
1 q9 C% y; g6 w|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |
) s& S6 P7 b. O$ U|        |        |      |       |   的运行大小为 128,(译注:原文为     |2 z. L& Q0 v. t7 q
|        |        |      |       |   the largest run size)          |  
6 y  d) |! E2 m+ W4 T|        |        |      |-------|----------------------------------------|, c7 Z* r# ?) i
|        |        |      |   1   |  c     c     c     c     c     c    c  |
5 u  W  i7 \+ H, z|        |        |      --------------------------------------------------0 a% ^# L8 z8 G$ U! c9 w
|        |        |                                                        3 H2 T" u6 Q7 S* P! O
|        |        |  对于未加工数据包,头信息的含义如下
0 v& e8 R  \$ C; U) D|        |        |      __________________________________________________
) U' t+ ~- \1 o|        |        |      | 1 bit |   7 位的像素个数减一                   |2 i8 s% o) i) A; Z/ e! g+ `$ a* T
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |" p! H( b9 j4 i# Y; p
|        |        |      |       |   类型的一个数据包中像素个数不能大于   |
& i$ C% J7 n3 _& U  q' `|        |        |      |       |   128                                  |
# i. N' V/ z- {2 a% q2 l5 f|        |        |      |-------|----------------------------------------|
# `" C2 T0 g6 b3 f5 J0 l# T7 U# `8 h|        |        |      |   0   |  n     n     n     n     n     n    n  |  r1 X; {. h1 D8 F
|        |        |      --------------------------------------------------' x6 c& y3 g: u) U
|        |        |                                                        ; h; }! d# C* B6 m( T. z3 N
|        |        |  对于 run-length 数据包而言,头信息之后是一个简单的
/ m# B" q7 ~: x1 n6 q9 D|        |        |  颜色索引,且假定该索引被重复头信息中低 7 位表示的次数
* f' X4 X: g: F- v7 e2 [+ R|        |        |  run-length 数据包也许会跨越扫描线( {, O. F1 y! a* h1 s& v
|        |        |  (扫描线起始于某行结束于下一行)
6 }7 q" I3 P0 E8 |0 W5 V# Q  `. j|        |        |                                                        6 U* e$ m$ C2 i2 V( P
|        |        |  对于未加工的数据包,头信息之后是颜色索引(数值由头信息0 b5 {! z2 T+ H. [
|        |        |  给出)该类型的数据包也可能跨越扫描线4 ~' f7 r7 V% t8 J$ P6 o) f
|        |        |                                                            
; D3 c2 f  p7 c  i. w# Q--------------------------------------------------------------------------------, t4 s; V, _8 W6 K. }

, M, I1 S! O, l% r" q+ M7 J
+ N- v( d9 _5 t
( M3 h4 K8 t( R9 J# n  z0 B+ N
' M$ A; ?% V' ]& J' o$ }--------------------------------------------------------------------------------: n: T4 G8 O, s9 u- C: r
|数据类型 10:run length 编码,rgb 图像
& E; I) K& \. N8 l5 A|--------|--------|------------------------------------------------------------( s9 V: }5 q0 B& D, M8 r7 {
|   偏移 |   长度 |                         描述                              9 f9 X' k' p: N; J# q
|--------|--------|------------------------------------------------------------* y. W6 M) b( d7 f7 l" {5 Z6 N" _6 H$ {
|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               % ]; Y, ]; B. k1 B  J
|        |        |                                                            
8 U2 G3 e7 F! c# C! z|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     . N  Y. t4 ]! ?% m: m' i4 ?' `+ V
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     ; ]: S* K4 V4 j
|        |        |  信息字段。   
% R) a8 s- Y" l9 Q, I2 V6 r|        |        |                                                            
: U+ W3 S2 r) I|--------|--------|------------------------------------------------------------/ H8 O) ~, _, v2 O6 L" `+ L4 b
|    1   |     1  |  该字段的内容或者为 0 或者为 1;0 表示没有颜色表,1 表示. S$ z% ?, L- D5 G
|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。
) ]7 ^% {( @+ z|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射
3 Z$ Q: g8 y- E9 w. B2 X8 Q|        |        |        中的第一种颜色
* d, P! s2 {) _' ~|        |        |                                                            
% D. Y5 h9 K% I# c7 S|--------|--------|------------------------------------------------------------8 ?" M% w! M4 q0 i& ]' ^9 |1 `3 @
|    2   |     1  |  图像类型代码$ \  K2 O) ?+ }: ~( g0 f3 f5 O
|        |        |          " L6 n+ i  ^+ K4 k1 P# E
|        |        |  本类型该字段为二进制 10# v9 x, T. `- g4 U: p! G- u
|        |        |                        
1 N$ V2 |9 U) l/ W& s5 E8 p8 h* Y|--------|--------|------------------------------------------------------------
" t/ ~8 e1 b- u! N|    3   |     5  |  颜色表规格
  F8 \9 I1 F+ h" N6 E|        |        |                                                         
* ~$ B$ l7 Q4 n7 ?7 ?|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下
7 `8 q6 i+ r" S" R# l# n|        |        |  
/ T6 b) h6 x  N|        |        |  & U3 X  n8 a: g! d; b1 L3 I8 X
|    3   |     2  |  颜色表首址: F6 q2 [3 l" W! z4 U7 \
|        |        |  颜色表首元入口的整型(低位-高位)索引
' _1 ?+ U0 }2 k/ k+ ||        |        |                  - t3 f5 _* j4 z0 a1 j, [
|    5   |     2  |  颜色表的长度
- p$ w; t* Q- q3 Q1 q4 H|        |        |  颜色表的表项总数,整型(低位-高位)     6 ~, F- h6 [: X3 F: {4 ?
|        |        |                                   
7 l% D0 g3 Y! m, s* Q6 I; v9 `$ ^|    7   |     1  |  颜色表表项的位(bit)数
1 g1 m( R: f1 ]( _|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA
1 u4 G0 r2 p8 a|        |        |                                                            6 s" G, H5 X( z- Y) ]
|--------|--------|------------------------------------------------------------+ i% O. y- Y$ a1 i. C" o- b6 a
|    8   |    10  |  图像规格                                               5 k7 n0 p8 O7 a# ~% J
|        |        |                                                              i& m  E7 Q( V* R1 {
|    8   |     2  |  图像 x 坐标起始位置                                       
- o9 D. \! ]5 d9 e4 M, x|        |        |  图像左下角 x 坐标的整型(低位-高位)值               7 m5 X7 f3 ~! Y  `8 J8 k% m' ?7 \
|        |        |                                                         
, p; l. E5 Y/ I1 d# x0 T|        |        |                                                            
) v) V) ?8 U: n  y: u|   10   |     2  |  图像 y 坐标起始位置                                       . k& B7 \0 v/ E$ T
|        |        |  图像左下角 y 坐标的整型(低位-高位)值                 W0 m7 G3 k3 [% P" K
|        |        |                                                         
! w/ T7 K$ j3 T  i# ]- t$ V; Q|        |        |                                                            
+ W9 M" |" q! o9 }6 J|   12   |     2  |  图像宽度                                                   
1 g9 P+ y4 D) m; Z! d+ D) {|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           / v9 j4 E( M7 k- Q
|        |        |                                                            
& w7 t+ i; L% a: l& V" w& }# T1 R* @- X|   14   |     2  |  图像高度                                                   / g, H  C: u& ?
|        |        |  以像素为单位,图像高度的整型(低位-高位)值               
, \) h' Y) O) o2 V- ^2 l1 y|        |        |                                                            
9 e( G& o0 q. f4 u2 W" D|   16   |     1  |  图像每像素存储占用位(bit)数                             
( b! @7 a2 M4 k& H- f|        |        |                                             
6 C$ q2 G: \1 t9 R' @) y5 l+ W4 m& _% Z|        |        |                                                            
5 L6 C! O% Y( F$ a# s" l4 c( j, M|   17   |     1  |  图像描述符字节                                           + q) T3 F& D: v# w
|        |        |  bits 3-0 - 每像素的属性位(bit)数                   3 q. ?! r3 y( g& x+ M
|        |        |                                                        & s6 j6 p: g* \$ F! A1 a% E& I
|        |        |  bit 4    - 保留,必须为 0                              
6 {* y1 f5 T+ J+ ?|        |        |  bit 5    - 屏幕起始位置标志                           
! R1 v6 l3 z* M' i7 P  K|        |        |             0 = 原点在左下角                       : N2 }& U6 Z* ?+ @& ~% c* j
|        |        |             1 = 原点在左上角                         8 E/ a$ k, w8 z/ P. a. f- ~$ |
|        |        |             truevision 图像必须为 0                        
' {/ X& R  Q. O0 o|        |        |  bits 7-6 - 交叉数据存储标志                       ' t$ e  }2 L/ R& ~
|        |        |             00 = 无交叉                                   " ~( T8 Y6 m. h, @
|        |        |             01 = 两路奇/偶交叉                        
1 i$ u: h( _) |  s* f' ^" ]& {|        |        |             10 = 四路交叉                               $ v: J( h& F3 T
|        |        |             11 = 保留                                   
* g' U+ e. s5 ]- M$ O% v|        |        |                                                            
7 \3 ~4 L$ S$ F  X# l! I% @|--------|--------|------------------------------------------------------------
4 ^8 A; R0 W& p|   18   | 可变   |  图像信息字段                                       
' X! k, G- l! l8 e' V7 {+ |7 A|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   5 q3 ]$ r& V( Z( U/ a7 x
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以    / g  x+ p  j  P, s: `% O& n1 }
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据     e+ N- H1 c; u9 {8 ^
|        |        |  之后
% X: ?; \6 A' X. X4 y|        |        |                                                            9 q  L* N% `7 k
|--------|--------|------------------------------------------------------------
/ f7 H$ F0 i$ Y$ u|  可变  |  可变  |  颜色表数据                                                ! c( D* c$ u- E/ L- W
|        |        |                                                
  l" ]% @8 _' f|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取
4 b; B/ }& b' Y) Z1 S. {6 _|        |        |  图像颜色表规格中描述了每项的字节数,为 2,3,4 之一' A* S+ Q/ R' [7 k
|        |        |                                                            * l2 A# |) q% n6 e: {5 \6 j5 W
|--------|--------|------------------------------------------------------------  _: v& t, @5 h2 ~
| 可变   |  可变  |  图像数据域
. m7 N+ i7 C/ }6 w! K|        |        |                                                            : d5 C  r3 Q5 g0 F: t, K+ i
|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放0 B' I5 T0 j4 F5 F' D9 ?
|        |        |  在数据包中;有两中类型的数据包:run-length 数据包,
0 X0 l$ h. \0 {, v|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,+ I! ?' k! O: |0 Y% z( w7 T
|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域; ^7 w5 v. f( l1 m; ]4 w
|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当( s! v+ S+ j- u( }5 B% x
|        |        |  它为 0 时,表示未加工的数据包3 j& e' U. Q" r% J: H
|        |        |                                                           2 w; ~; Y, A( \, E/ H& f% u/ T
|        |        |  对于 run-length 数据包,头信息含义如下
9 w5 w$ S7 i$ U2 X! e|        |        |      __________________________________________________   
  |4 a& @) ^0 t! m8 I; e|        |        |      | 1 bit |   7 位的重复记数减一/ ~. s& c/ C/ n$ K7 B( j
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |; j( ]0 u. K3 f/ v! G" v
|        |        |      |       |   的运行大小为 128,(译注:原文为     |
& o- r2 C  f2 G|        |        |      |       |   the largest run size)          |  6 p+ q7 r, x8 S% T3 ~
|        |        |      |-------|----------------------------------------|
: {9 o1 U0 A' H4 F6 u. C1 x|        |        |      |   1   |  c     c     c     c     c     c    c  |
# R3 [1 g4 q# s/ z% _4 h& \|        |        |      --------------------------------------------------5 r0 h5 E6 f4 a+ e& @8 l9 f
|        |        |                                                        % d  E5 d3 @3 D$ x  y7 A& C2 G
|        |        |  对于未加工数据包,头信息的含义如下
, z1 x0 k% N: Q, d1 c|        |        |      __________________________________________________
% t; ?# Z/ e5 ?' X|        |        |      | 1 bit |   7 位的像素个数减一                   |7 t  F3 J/ F. w3 L1 j" X
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |
  l7 q, [- [' K+ j+ q|        |        |      |       |   类型的一个数据包中像素个数不能大于   |
- r* n( k0 X4 n# a: q+ j; b) S. r+ S|        |        |      |       |   128                                  |
( K$ k( M( p. D1 w, J|        |        |      |-------|----------------------------------------|0 J' e4 M& F: V9 _, U0 |, ^
|        |        |      |   0   |  n     n     n     n     n     n    n  |
# ~6 ]5 p2 C0 o4 H|        |        |      --------------------------------------------------) J% {. T6 x3 R2 }8 t& p& x# P; P
|        |        |                                                            
" R9 L, D% h1 X. Y: f|        |        |                                                            & _( s6 r/ _, k; M
|        |        |  对于 run length 数据包,头信息之后是一个简单颜色值,0 T5 X# K2 C/ Q5 A  n. M
|        |        |  且假定该值重复的次数为头信息中记录的数
2 t- {% _3 a; a- k|        |        |  run-length 数据包也许会跨越扫描线
3 l; W- Z4 \5 M! M# D9 }|        |        |  (扫描线起始于某行结束于下一行)
, i! p0 w2 q# U3 w+ Z|        |        |                                                      
6 v# D$ Y) E# R3 c( X2 p|        |        |  对于未加工数据包,头信息之后是颜色值(数目由头信息指出)9 g# p6 z3 q5 D8 K% [
|        |        |  
! e! U9 e4 B# f8 c% J( I$ f|        |        |                                                7 w4 D; \6 x! x5 d+ `
|        |        |  颜色表项自身有 2-字节,3-字节或 4-字节几种大小(分别
  N3 |: b4 `; T% N  @|        |        |  对应 TGA 16,TGA 24 和 TGA 32)形式如下:
- `  `3 D* N7 O) W! d, k|        |        |  
# O* |# @- ?% ~|        |        |            2 C) l1 \7 W6 V8 I" E0 C/ g! G
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               + I; R" R% S% F  {! x! S& B
|        |        |                                                            
3 q" R  [1 z2 s; f|        |        |  2 字节表项中,两个字节分解成如下形式:               
7 L% u% }7 r: o$ O& f1 {# j|        |        |  arrrrrgg gggbbbbb                           ! V- O* p$ Q. g& f0 F( [1 ?8 [. M0 L
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
( f! L4 O6 `5 A" s% {|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位
3 U1 p0 A7 g  C3 H& m|        |        |                                                          " B, R! O$ t- [) F
|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个( }& d  G9 _. q" X& Q* ~! T
|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象' L/ K  x) y8 ]% q( v
|        |        |  TGA 32 类型的图像那样存储, o; i$ ]: {/ y" O: D
|        |        |                                                            - T: M; [% L+ D) ~- P
--------------------------------------------------------------------------------# I, ~% L  a, Z1 r5 m: z
6 [- K. I5 ?: \. d
<完>
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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