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

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

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

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

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

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

原文
6 t9 c2 R+ Z8 \' k, Ahttp://dev.gameres.com/Program/Visual/Other/TGAFormat.htm
1 U& n- g$ ^$ ]! J1 N  0 |8 k+ H/ x4 s' }
根据david mcduffe编写的TGA文件格式资料翻译而成! c0 c5 W$ y0 _4 z+ a8 ~
 / h* B0 M5 i6 V3 j# m. d
本文档是为满足许多对 TGA 图像格式的了解需要而创建的。本文摘录自truevision 技术指南的附录 C,如果
# h8 @4 A9 F5 t5 W  i需要更进一步的信息,请致信以下地址:7 N' W  F9 b: K: I) k: y4 Q

9 I$ g1 @' N" Z% ^8 l           at&t1 p. t9 g) A( c' X
           electronic photography and imaging center
( J- `1 `, H# M8 [- T: j7 v           2002 wellesley ave.
9 ?  `: V# y2 C) @           indianapolis, in 42619" f8 P  q$ X0 @( g8 j& [
本文档不求全面,但力求准确。如果你发现了任何拼写错误或内容错误,请告诉我,( david mcduffe, 8 d. ^- W& p( q% n3 x; X  v
75530,2626 ),我将改正这些错误,谢谢。. P. \& ]) g. _! O9 R% h- b# k% a
! U0 i6 r2 [8 _
不全面的原因是 TGA 包含了超过六种图像文件格式,而其中的几种较为常用。 我选择了我现在使用的格式并
) V7 B2 Q2 o5 ?9 {在本文中加以详解。 如果你需要本文中没有包含的格式说明,你可以与你的 truevision 代理商联系。' s$ ~: s3 x* P3 ~+ s. Z; y
对所有的 TGA 格式的文件而言,其第三字节(二进制整数)用来区别各种不同的 TGA 文件。下面列出了该字, r  t5 ^/ J3 m) `1 l3 d7 u7 X+ h: a
节表明的对应文件类型:8 m0 u/ v2 J8 G; S' e6 b
    0  -  文件中没有图像数据
) E) c0 z* L; e0 i7 H' E    1  -  未压缩的,颜色表图像7 w" Z1 P7 q9 p
    2  -  未压缩的,rgb 图像
1 g( w; f4 C- D7 n9 c0 i    3  -  未压缩的,黑白图像
8 \5 i, g5 Z0 {; }3 u, L3 y# _) b    9  -  runlength 编码的颜色表图像, y( c; i- \/ e3 C7 K
    10 -  runlength 编码的 rgb 图像% d" D, `" H. {3 Z
    11 -  压缩的,黑白图像
9 @# {, _- X0 j* S8 T3 y    32 -  使用 huffman,delta 和 runlength 编码的颜色表图像
: `! r% R$ D6 ?8 G$ d' q3 k# l    33 -  使用 huffman,delta 和 runlength 编码的颜色映射图像,4 趟四叉树类型处理。
4 L: o/ J2 U! B# i4 i& l    本文仅仅描述对应 1,2,9 和 10 的文件格式。
/ A+ I, F  ~2 L  D
/ d0 x: k" J+ o9 L1 _8 g- [4 l--------------------------------------------------------------------------------9 n2 M( u* L5 T0 b
|数据类型 1: 颜色表(color-mapped)图像+ }  S5 ~7 W4 y* U
|--------|--------|------------------------------------------------------------
/ `* @3 l% Y8 g|  偏移  |  长度  |                            描述
* U$ Y6 U: m3 b( `, U|--------|--------|------------------------------------------------------------: F- X; n6 i7 }) U: r
|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               - X9 S9 |* h# t# W
|        |        |                                                            5 l$ \4 G/ ?0 n% ?" X
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     8 g! L) c$ E' k/ |6 t2 J7 d* |' p
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     2 o1 C' K  @) R# A: a- {" T
|        |        |  信息字段。                                   
7 M, P" x7 X+ S, p|        |        |                                         
9 i* C6 d& J/ T0 M|        |        |                                                            
# g/ b7 s) n1 h0 ~|--------|--------|------------------------------------------------------------, W4 U) c4 u4 ?5 P3 Q& g8 |2 ?4 n
|    1   |     1  |  颜色表的类型                                           1 E$ ]# ^7 O+ l
|        |        |                                                            . j, ^: _' I% y4 J+ p
|        |        |  该字段为表示对应格式 1 的图像而包含一个二进制 1           % J* F$ x$ @& l' c) B% @
|        |        |                                                            - F6 k' ~* Q3 ]& u7 h
|--------|--------|------------------------------------------------------------( P& {/ Q( h3 u. \$ g
|    2   |     1  |  图像类型码                                            $ z7 ^: x4 n3 A, C
|        |        |                                                            , a! B! z/ s$ H
|        |        |  该字段总为 1 , 这也是此类型为格式 1 的原因               
2 z+ j  D- R) ]: \. H6 g1 ~|        |        |                                                            2 w9 b( \% N5 n# U% Q9 V$ |' g0 H
|--------|--------|------------------------------------------------------------6 W6 x4 C0 o& I
|    3   |     5  |  颜色表规格                                       
9 v! {6 Q6 R' n|        |        |                                            $ H; i( b, r, F9 O
|    3   |     2  |  颜色表首址                                                7 d1 I+ A" Y' s. v1 F5 [
|        |        |  颜色表首元表项的整型(低位-高位)索引                  ~0 ^* k$ p2 |7 U& N% u
|        |        |                                                            : ?; k- z5 C$ ~+ H6 X
|    5   |     2  |  颜色表的长度                                          0 ?+ t. P* }7 P' O
|        |        |  颜色表的表项总数,整型(低位-高位)                   ! a; Q; n& t( k- x3 A
|        |        |                                                            
! D( v# k! H. b% C/ h6 r6 J% |8 b- R( _|    7   |     1  |  颜色表表项的位(bit)数                                   
  B% f/ `. p0 J/ Y3 K- w|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA 3 E8 c( e1 {0 _6 V; T% f
|        |        |                                     , _3 Q8 B# l& T6 d( Z
|        |        |                                                            * H# [# r% r% q7 c7 W+ [8 z1 F
|--------|--------|------------------------------------------------------------
1 m' H* G- Z  g|    8   |    10  |  图像规格                                               
8 R  k+ O2 r* u% a9 V|        |        |                                                            
/ o5 l5 O- S$ c7 Y7 G, W3 \3 l1 c; @8 N|    8   |     2  |  图像 x 坐标起始位置                                       
- U6 ~- y& Y. m  i" ||        |        |  图像左下角 x 坐标的整型(低位-高位)值               & M4 T: _2 ]  f& V) \
|        |        |                                                         
- U; l3 e5 p4 f- O$ p& j|        |        |                                                            
" V+ L8 S5 v" C3 ]0 v2 k|   10   |     2  |  图像 y 坐标起始位置                                       
- l* I/ Z- g7 c3 W* e% w|        |        |  图像左下角 y 坐标的整型(低位-高位)值               
% J) c3 T+ k: ~, e4 n|        |        |                                                         
  y4 M, S" x" D' ]6 v  j|        |        |                                                            8 o6 p7 r% d& @1 L5 l* C
|   12   |     2  |  图像宽度                                                   
8 H7 y$ g% B% }: |, T& i|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           , \* Q: K, ]5 d3 y2 G5 }
|        |        |                                                            
: X& B5 b# F* w8 _; W, l& P+ s|   14   |     2  |  图像高度                                                   
- l4 p" t( d, t|        |        |  以像素为单位,图像高度的整型(低位-高位)值               
8 W1 ^& {" w+ n: |* F  m5 Z6 O|        |        |                                                            
7 e/ H0 s/ a( N' v|   16   |     1  |  图像每像素存储占用位(bit)数                             
* b" D7 N# b6 |( D, |" ^|        |        |                                             9 S0 f5 r1 E; z5 S2 D0 n! R9 X; H
|        |        |                                                            
. V2 p- T: @6 a6 p* z2 ]6 {|   17   |     1  |  图像描述符字节                                          
6 a5 }" q9 Z1 j|        |        |  bits 3-0 - 每像素的属性位(bit)数                   ( k. d, S7 Q3 m; O, y) u/ t
|        |        |                                                        
* H; v) A) J# E9 g1 K, U  m|        |        |  bit 4    - 保留,必须为 0                               ! J; T  g$ f8 [. ~
|        |        |  bit 5    - 屏幕起始位置标志                           ' w- D3 i! x4 z" H9 h# k
|        |        |             0 = 原点在左下角                       
- u+ m$ H! V6 p9 O. y$ C|        |        |             1 = 原点在左上角                         ; G5 S: k; e1 Y8 T5 z5 q9 W
|        |        |             truevision 图像必须为 0                         ; i4 D9 s) W7 @' \
|        |        |  bits 7-6 - 交叉数据存储标志                       
' q2 |: [& Z' Q0 g|        |        |             00 = 无交叉                                   
, I4 N' t% H  k5 n& B( D/ h|        |        |             01 = 两路奇/偶交叉                        
& x- Y7 u+ G/ Z|        |        |             10 = 四路交叉                               0 G% W, O% N3 Z$ E
|        |        |             11 = 保留                                   
; G) N+ ]' I8 b. j1 |* U9 B2 z7 o8 K|        |        |  这一项应该设为 0,不要问我为什么                  
( ]# U0 T8 `' J" r8 M6 r|        |        |                                                            - N4 |- d+ u& B5 r% U
|--------|--------|------------------------------------------------------------! j) d0 T5 l+ s/ w
|   18   |  可变  |  图像信息字段                                       " \/ n6 A9 o' c; s- Z2 t6 G$ `% Z
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   
& V3 V# F7 t' I. e* [2 c|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以    # Z3 ?% T! l% Y( @3 p5 i% D. ~
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   9 [: u; q# j6 |0 Y9 \" z
|        |        |  之后                               ( P/ z9 x/ n; H- y
|        |        |                                    7 g3 H" v7 v. r  f# @/ Q
|        |        |                                                            ( f$ o' e0 E- \0 _7 @3 C
|--------|--------|------------------------------------------------------------1 C+ d3 {5 k% E8 f: p$ P) c1 h
|  可变  |  可变  |  颜色表数据                                                ! C# o4 F7 t" d4 U% f- E$ E
|        |        |                                                            8 t- L  V: A# Z$ s: s
|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小      8 f7 \: S) h& `! I
|        |        |  和数据项数目决定(在前面相应的说明字段中给出)            * g* D+ q: _9 T) g1 }, }: r4 J. Q
|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit)
! b' o' p9 N! H; g7 j$ d! j|        |        |  被认为是属性位。                           
4 }2 @& n4 ~+ F. v. c$ _0 J* H/ y|        |        |                                                            " g6 I) Y5 w/ P1 Z
|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,
! T% d, S/ Q% I7 I0 E|        |        |              字节 3 表示 RED,字节 4 表示属性           
9 L4 T1 E& I7 z3 E8 w2 }) [/ `|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               : F3 j! S3 d( ~( }/ x$ D+ f4 T& ]
|        |        |                                                            
4 v2 [5 n0 I+ x( t|        |        |  2 字节表项中,两个字节分解成如下形式:               3 N2 q+ M  h6 A4 X& L, S9 @
|        |        |  arrrrrgg gggbbbbb                           
* `/ h1 y; V+ G2 W8 J( d  {4 @$ ^|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
. h! G3 L7 J4 k7 h|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。  - g$ h6 d/ J& e$ K. S6 a4 u
|        |        |                                                            ; S5 P/ p6 |9 V
|--------|--------|------------------------------------------------------------: l8 Z  }6 }, _+ l5 E
|  可变  |  可变  |  图像数据字段                           ' K  v: Y4 {' J/ W
|        |        |                                                            
0 t# `$ t8 A4 D1 }" `0 q- l|        |        |  该字段给出了 (高度)x(宽度)个颜色表项索引,每个索引   
, D  R' l& G! o8 r( m. y|        |        |  以整数个字节的形式存储(典型的例子如 1 或 2 个字节)      / V+ ~: F, F' @* e! J
|        |        |  所有的数据都没有符号,对于 2-字节表项而言,低位字节是     0 ]  m3 r. y1 }
|        |        |  先存储的。                               - c" @: h! P/ @% s
|        |        |                                                            0 D+ \/ w1 f! r" ^
-------------------------------------------------------------------------------
7 S4 u$ `2 T8 Y: P/ e: E2 k: j
* `& G+ }8 U2 q% Z4 J2 ^' Q) L# l& _3 H0 C
- k/ F; B& |% o6 l
--------------------------------------------------------------------------------
& B* {6 o& `; a$ \8 q1 C|数据类型 2: 无颜色表 rgb 图像                                 
: S1 w3 G) \8 |5 \; ?|--------|--------|------------------------------------------------------------$ j/ y. b, V. X
|   偏移 |   长度 |                         描述                              
9 o' p" O0 G# }; U- Y9 L|--------|--------|----------------------------------------------------------  u! {* ^6 L+ [7 w
|    0   |     1  |  图像信息字段( 见本子表的后面 )的字符数6 s! e3 B0 T. m2 L8 C/ t
|        |        |                                          
9 o: X' K/ U, {9 j4 q|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度
1 U! ~( R7 Q1 W6 Q- I/ E9 \; F; q|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的
2 q& D+ N+ m- J) Y" Y, o1 y|        |        |  信息字段。, u8 x# w5 K: o1 m$ @* x
|        |        |* g6 o  Z5 d0 }' ?% `3 R. ?
|--------|--------|------------------------------------------------------------: J" ], K5 y( A' h0 ^9 r( R+ x
|    1   |     1  |  颜色表类型
  i/ W# {! c4 W- `|        |        |                                                 $ I9 z) I0 z0 B) C% ~' n6 C5 |
|        |        |  该字段的内容或者为 0 或者为 1;0 表示没有颜色表,1 表示/ P1 }0 D& R! ^4 x
|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。
$ s2 @" j3 `0 ?4 X0 M|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射
& L. O) M' i. [1 q; O! E/ U( m|        |        |        中的第一种颜色
5 P7 B+ V0 z* ^- L9 k9 v|        |        |
5 R! G2 t; N8 L9 c/ I. I|--------|--------|------------------------------------------------------------
7 N  O: G8 @- x! n! `2 v8 i|    2   |     1  |  图像类型码
! S, b- n& P# u# G3 p! T" y|        |        |                                                     
; H5 l! Y2 \  m! A$ @' F; z|        |        |  该字段总为 2 , 这也是此类型为格式 2 的原因    ! J' q0 h/ ~5 H% ^; I# Q9 H; {
|        |        |  
  I' h/ X: |3 ?; a) L* O: c+ g|--------|--------|------------------------------------------------------------
+ f4 ]) w" W8 N3 }  F2 P. S|    3   |     5  |  颜色表规格% G1 \  {  {0 U- o
|        |        |                                                         
! r' Y$ P8 B9 V7 [|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下1 Z- F8 J& g! J0 O$ `/ y' }# R+ ]
|        |        |  
  Q. r  \( g: K" q+ U0 v% U: y" `|    3   |     2  |  颜色表首址
+ k2 h* |  m3 N7 b& N1 Y8 p" d|        |        |  颜色表首元入口的整型(低位-高位)索引" I, n3 R' A1 b  j2 P% p* ]
|        |        |                  
6 o( Y7 ]1 m: Z3 z1 G* |% w5 i9 l|    5   |     2  |  颜色表的长度0 O* T  W7 O. s6 H% [: G1 \
|        |        |  颜色表的表项总数,整型(低位-高位)     # ^  g1 F! `6 _% [
|        |        |                                   
, u' ~1 V0 W# A# a|    7   |     1  |  颜色表表项的位(bit)数
" P8 J$ p8 y) q( `0 W8 Z|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA
; h* `7 H) l9 W( O8 {. y/ Y/ j) t1 e|        |        |  ) }/ y; |" v. H
|        |        |                                                           + t8 {0 s- t7 x
|--------|--------|------------------------------------------------------------" f( |5 j5 C' I+ ?
|    8   |    10  |  图像规格. Q7 S5 W8 t$ V+ R0 I9 \
|        |        |                             ; q" ^/ b0 g6 B  N8 O+ L6 \6 |+ Z8 }
|    8   |     2  |  图像 x 坐标起始位置       # }7 l% r, H. H- B' c3 h
|        |        |  图像左下角 x 坐标的整型(低位-高位)值3 l' M5 u0 Q) T% a" \. o4 X* `
|        |        |  0 f4 w& g- r  w5 Y
|        |        |, M; \7 C  ~0 l6 D& a
|   10   |     2  |  图像 y 坐标起始位置
* E& ^2 D* i+ o6 o" [3 }4 }|        |        |  图像左下角 y 坐标的整型(低位-高位)值
0 M: z& O3 k6 ~- [- ^|        |        |  
& h: b' ?8 q) p5 i+ I. C8 c0 A8 m|        |        |
: b! _) Y2 Z! M) J( T|   12   |     2  |  图像宽度 ! G& g  s6 l' `, ^
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值2 m  M1 M$ b2 f( b. U9 h
|        |        | / J+ X/ R8 G7 i  |# l
|   14   |     2  |  图像高度
1 }$ f- `8 x# j. F4 s- o4 }6 B9 B- E|        |        |  以像素为单位,图像高度的整型(低位-高位)值% g2 f( m8 h! c3 X7 E6 E! B
|        |        |( Q4 g/ k2 y0 E+ U: z3 B+ P" a( Z% z
|   16   |     1  |  图像每像素存储占用位(bit)数, A) ~- O. ]- e( U) y. \7 C/ _
|        |        |  它的值为16,24 或 32 等等决定了该图像是 TGA 16,TGA24. U/ G& J& n( C: ^
|        |        |  TGA 32 等等6 r- q0 a3 ^! F- c0 x, L& t2 n/ @
|        |        |
$ H+ h2 E+ L3 k|   17   |     1  |  图像描述符字节  t* {9 Z. W* n1 o* i7 {
|        |        |  bits 3-0 - 每像素对应的属性位的位数;对于     TGA 16,  n$ z3 ~+ ~5 D% q7 `: X6 L6 B
|        |        |             该值为 0 或 1,对于 TGA 24,该值为 0,
( Q0 _1 t+ ^  N+ [|        |        |             对于 TGA 32,该值为 8* ]1 i. w. b% y2 o. M1 W& O3 z+ M
|        |        |            
- |7 p+ f7 x  @* j7 Z|        |        |  bit 4    - 保留,必须为 05 g5 X+ K% Q& r" g' F8 C' Q+ v
|        |        |  bit 5    - 屏幕起始位置标志
& ]- j) j" `' [7 L2 L7 ^|        |        |             0 = 原点在左下角7 [9 a9 \2 I  ~) m/ p: e, |
|        |        |             1 = 原点在左上角
" E) R& P5 G' v5 T0 T" ~5 l  ]% ?" P- w|        |        |             对于 truevision 图像必须为 0
! J( j( _2 r0 _& R|        |        |  bits 7-6 - 交叉数据存储标志9 U$ w% r; Z8 y+ P+ L. g/ _
|        |        |             00 = 无交叉                                   7 A) A  t% ?& q. M6 T$ ^0 N
|        |        |             01 = 两路奇/偶交叉                        ; @! {1 {+ ]9 d3 Q  z
|        |        |             10 = 四路交叉                               : f! E$ g+ k+ F; }' z
|        |        |             11 = 保留- }/ e7 u0 Z) C" P2 C2 z
|        |        |                                                            . H( J0 U( t- b
|--------|--------|------------------------------------------------------------1 R8 d* B7 A% ~: T
|   18   | 可变   |  图像信息字段                                       
, l) J- J  ?$ k* J: c, ||        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   
' ?( \6 T# B+ }3 R  _7 W8 m|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
; O% \9 O' G: N8 F4 k6 F|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   
$ Y" \" S* \* U7 P$ v9 {3 E|        |        |  之后                              
% i  E4 V1 b' J7 h! D5 s6 `|        |        |                                                            , G/ u/ j5 `' u& V  X2 @
|--------|--------|------------------------------------------------------------
% y4 m2 d+ A' ~! ^7 u1 n( n- B5 s) N|  可变  |  可变  |  颜色表数据                                                ; t+ B, o. V2 B; T& W. }# w
|        |        |                                                
' l" D. \) A! t: w|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取  [( p9 r3 @) w' l) L- G$ X0 f  r
|        |        |  图像颜色表规格中描述了每项的字节数,为 2,3,4 之一
8 R6 X( ]" d6 K1 ~8 V6 z% O! `|        |        |    m0 k6 Q# ?$ O. c6 G: J+ |
|        |        |  
" V: c  x) N9 ]3 h6 F! ?$ {" c|        |        |  " J9 {; Y, C9 {. S6 o
|        |        |  7 Z. p2 X% ^2 y( b0 v
|--------|--------|------------------------------------------------------------
, ]: W) [6 I* J6 r" D, ]|  可变  |  可变  |  图像数据域% y4 J' Z% F* U
|        |        |                                                   
' p1 |7 ^3 P- C8 F! ^7 B: _|        |        |  这里存储了(宽度)x(高度)个像素,每个像素中的 rgb 色值: n# h8 {; a$ {" D5 Q
|        |        |  该色值包含整数个字节/ b8 o! {1 T  B
|        |        |  
* Y6 z. F* [8 J4 k2 [/ o0 ]) F|        |        |                                                           
+ S0 [- X8 |' j|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               
' J3 M; v; E) r# d2 B& O|        |        |                                                            8 [, T% Y8 ~  E, B4 D" m
|        |        |  2 字节表项中,两个字节分解成如下形式:               
2 Z) }1 Y8 }1 V6 ^4 c( g" ]3 _|        |        |  arrrrrgg gggbbbbb                           $ W0 I, s2 D( a  Q+ u$ o
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
# r- U/ U1 E0 E) h- ?|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位
* L" x4 T5 A" f|        |        |                                                          - M4 U0 f. s% W5 {+ S
|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个
2 p5 h7 i! c# Z0 N& U( l|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象- F- C1 c) K3 J, l3 P, q
|        |        |  TGA 32 类型的图像那样存储
$ N: j6 n' u" c/ h|        |        |  6 I& ]6 j3 u) t. `  w" a9 s
|        |        |                                                         " E. q/ _8 V. c* A% q
--------------------------------------------------------------------------------
9 n- e$ p; V& c) N1 q; V; l, a8 E6 t  d3 e1 O) x- g3 F9 }" e) W/ u
5 c/ h3 M! i' A) D

- w( m. v' W5 M# h. t* I  @" |) N8 u! n
--------------------------------------------------------------------------------, L* K0 Z2 D# Y/ V7 \# A/ r
|数据类型 9:  runlength 编码,带颜色表的图像, b& t+ ?9 e' A
|--------|--------|------------------------------------------------------------3 z2 l( c3 {# ]  k/ [& t4 J
|  偏移  |  长度  |                            描述
" G( I5 q( S/ W% {6 v|--------|--------|------------------------------------------------------------
, e2 b: {3 c7 r6 c|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               
& B/ e" ^9 y: I) o|        |        |                                                            7 F3 F# I* ]$ p1 E, H8 d
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     3 \* ?9 _3 v7 ]- A' c- B- O
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     
$ D$ E& u2 @% r% a" a/ F# o% L|        |        |  信息字段。   
6 S. u5 |! V+ }|        |        |                                                            
, y9 }4 R6 {7 K- V: \$ S6 h4 a|--------|--------|------------------------------------------------------------
* R2 I, L3 Q+ j: n5 W|    1   |     1  |  颜色表的类型                                           8 f2 R  V+ W7 x" b
|        |        |                                                            
0 j7 t9 N, k1 t! [  e|        |        |  该字段为表示对应带颜色表的图像而总为 1
& V5 N# O  s5 X# p. Z. v4 V|        |        |                                                            2 D9 [0 o" C5 [' ^  j1 }" B
|--------|--------|------------------------------------------------------------
- \/ e+ X+ ]( Z|    2   |     1  |  图像类型码
9 l4 K0 e$ Y9 Y# Z- J, T|        |        |                                                            
, d; N4 Y  [6 s( Z3 d7 O% k3 h|        |        |  本类型该字段为二进制 9
7 s- b9 b% R; P0 M|        |        |                                                            9 B9 B8 ~0 r3 j* U
|--------|--------|------------------------------------------------------------
9 c- ~* w* G( W" `) c|    3   |     5  |  颜色表规格
! \1 K7 b% j1 d: S; Q' ~2 N: |3 R' M|        |        |                                                         
3 ?- D" B4 }' w|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下
2 T4 J1 l) ?; ?7 p0 \& v|        |        |  ; D4 O: N& S5 C# C
|        |        |  1 K6 A5 J0 w8 X7 u
|    3   |     2  |  颜色表首址2 g6 k; l- [. P) g  }) |
|        |        |  颜色表首元入口的整型(低位-高位)索引; K' ?0 @8 f& x6 i& t$ k
|        |        |                  ( j- h! i/ Y: h1 Z$ Q' _4 e
|    5   |     2  |  颜色表的长度
' Z& R" E1 e0 s% P|        |        |  颜色表的表项总数,整型(低位-高位)     9 w' g  N& E- L7 S
|        |        |                                   
; Y& b4 G$ r7 I; Q- S|    7   |     1  |  颜色表表项的位(bit)数
" |/ ]  g) S4 f$ I4 `$ o1 n6 `% ||        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA
) A9 k$ b! Z! {: m1 s' _7 U|        |        |                                                           
  z# H5 s# u8 d. `* D- }|--------|--------|------------------------------------------------------------. F* d7 }' O: \" @
|    8   |    10  |  图像规格                                               
; F3 U4 u" b4 @|        |        |                                                            
# T2 x* p- y7 K/ k: D: _|    8   |     2  |  图像 x 坐标起始位置                                       4 V& W9 q% R8 f  [+ @9 E; ^$ w' ], d
|        |        |  图像左下角 x 坐标的整型(低位-高位)值               
( Q  h3 Y. B" G2 X|        |        |                                                         
: Q: J% @5 X6 @( J* o' }5 k|        |        |                                                              |& w7 a# z6 y, Z
|   10   |     2  |  图像 y 坐标起始位置                                       
2 t/ @$ U% X- ?2 e" y|        |        |  图像左下角 y 坐标的整型(低位-高位)值               6 b( n' k4 k; B/ h3 m
|        |        |                                                         
) s' O# A+ r6 k8 o; u|        |        |                                                            3 }( S+ U1 s+ F6 d( ]3 d: I0 V6 F
|   12   |     2  |  图像宽度                                                   
8 F2 B9 Z, O4 I* }|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           
; }/ B2 g5 o4 D' j7 f, G|        |        |                                                            
' p+ u: m5 w* a' @|   14   |     2  |  图像高度                                                   
# H1 ~, h9 ?8 ]& l1 W7 o. I5 T|        |        |  以像素为单位,图像高度的整型(低位-高位)值               ' @" H/ Z$ G( r8 a. l, H5 L1 b
|        |        |                                                            
  u# K) _2 s" c|   16   |     1  |  图像每像素存储占用位(bit)数                             ; c4 t9 P7 A$ `; v! v( C
|        |        |                                             
8 [% t1 T6 [/ [- v. l* D6 W|        |        |                                                            
3 {) e- y. D% d$ O; g! r1 l2 r|   17   |     1  |  图像描述符字节                                          
  G! X9 ]: W; w6 o' q* F* _|        |        |  bits 3-0 - 每像素的属性位(bit)数                  
# m8 e0 R6 U$ p: s* U|        |        |                                                        
* d1 D+ Y, s3 ~. D; a0 Y! ~" ~|        |        |  bit 4    - 保留,必须为 0                               4 q2 |, P2 U+ K2 _2 K
|        |        |  bit 5    - 屏幕起始位置标志                           
1 C* ]; @4 L& ?4 T! h# A% s, F|        |        |             0 = 原点在左下角                       0 b, M* Y" \1 W7 M9 ?7 v
|        |        |             1 = 原点在左上角                         9 N% t: _8 d& ^' t& C- _/ `
|        |        |             truevision 图像必须为 0                        
" }. A4 v. n- \$ g! m0 ]|        |        |  bits 7-6 - 交叉数据存储标志                       % [* f; ?3 G+ N# L3 g4 U$ _
|        |        |             00 = 无交叉                                   
# H* N& Q. h- \$ a9 a) M) u|        |        |             01 = 两路奇/偶交叉                        8 u+ b+ V8 U' [, D! |3 k
|        |        |             10 = 四路交叉                              
3 z7 `4 z- p, y|        |        |             11 = 保留
, r# O$ S8 O1 C9 y* R6 r|        |        |                                                            3 A6 A# ~$ c5 W, Q, F) h/ g
|--------|--------|------------------------------------------------------------
  V! A; H  }7 E' ^|   18   | 可变   |  图像信息字段                                       
  ^* s1 Q  g3 D|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   8 M& h( I5 R7 p4 d6 x
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以    # _* t+ L. X6 t
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   
4 H0 q/ c7 V7 r|        |        |  之后
0 X! W2 q0 U4 H|        |        |                                                         
# @9 i  Y) f# A+ ^) W|--------|--------|------------------------------------------------------------- ~' w6 n% W# K1 A+ U7 l
|  可变  |  可变  |  颜色表数据                                                - W1 I) o% Z) p
|        |        |                                                            # {0 {% G; V5 Z
|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小      ! r3 O+ s* t' y' \$ k% s
|        |        |  和数据项数目决定(在前面相应的说明字段中给出)            
1 t; `& Z' Y; C+ n|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit) 5 G% I$ u) B: m& X" I
|        |        |  被认为是属性位。                           4 T' p0 s( ]4 d6 ?" w* g  R; q
|        |        |                                                            
  y& h' C" s: p" R- \|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,5 Z% g3 ?, b) C( @
|        |        |              字节 3 表示 RED,字节 4 表示属性           6 ~2 o7 v  P; j6 T
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED                 e. g( F7 g4 o3 |* V, U5 `" N5 p
|        |        |                                                            
+ k" M, R% h6 Z. c1 n* H! f. ^|        |        |  2 字节表项中,两个字节分解成如下形式:               2 a6 w6 y# p' q! `1 q
|        |        |  arrrrrgg gggbbbbb                           
" z! f4 h% o9 S' T% c: n, \|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  / O8 ], K1 S% @
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。
  }5 S7 E" \4 W9 n1 o$ e/ x+ Q|        |        |                                                            1 l2 U3 o# ?) m4 I5 V( `
|--------|--------|------------------------------------------------------------8 T  N+ d0 I) U5 L+ X: g. z) ^
| 可变   |  可变  |  图像数据域
5 @2 p* A8 _3 u|        |        |                                                            3 B* m% u: x& j2 C
|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放
* R8 U5 H7 A5 [3 h' ^8 b: ||        |        |  在数据包中;有两中类型的数据包:run-length 数据包,# H6 M9 q7 V4 V7 D
|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,& e) P; v& M# ^& _; R2 b9 Z
|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域
- y. c+ O" u& z|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当+ [% a) m! Q4 A8 @( t7 i$ W' }
|        |        |  它为 0 时,表示未加工的数据包
9 A7 I( \( u6 t/ I4 p( \: {! g|        |        |                                                            
; W$ s) u+ q, |8 q! M|        |        |  对于 run-length 数据包,头信息含义如下
1 N3 S3 _( d0 y& X|        |        |      __________________________________________________    ) T1 x$ Z9 s6 H4 k5 w8 {
|        |        |      | 1 bit |   7 位的重复记数减一) c0 o& J2 J2 s1 s1 s+ d4 a, G, F
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |. F1 f, X& f* W# ~9 J8 i1 R
|        |        |      |       |   的运行大小为 128,(译注:原文为     |
5 Q, f7 w7 x& R( s7 R4 g8 m' k) G( p|        |        |      |       |   the largest run size)          |  
5 X6 h0 V9 m2 G|        |        |      |-------|----------------------------------------|  e3 Y5 P0 J8 Y6 p+ R
|        |        |      |   1   |  c     c     c     c     c     c    c  |
; D, i" T5 p' y4 m, K|        |        |      --------------------------------------------------
, ?4 m( x( E0 Z|        |        |                                                        
# e8 s8 E, ^. m/ d9 i0 u8 `0 w; T|        |        |  对于未加工数据包,头信息的含义如下7 _+ J! f; I$ {
|        |        |      __________________________________________________/ f. ?3 Q- }, x) w5 |
|        |        |      | 1 bit |   7 位的像素个数减一                   |0 j3 @1 x* {! V$ s
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |8 T' W9 |( S5 c) y  ?2 M' E
|        |        |      |       |   类型的一个数据包中像素个数不能大于   |
: l$ Y7 `/ N" T: o9 j|        |        |      |       |   128                                  |( \/ |! s. l3 J
|        |        |      |-------|----------------------------------------|
( a$ @  `: q: n  s' j! e|        |        |      |   0   |  n     n     n     n     n     n    n  |9 G& k' Z' t1 Q
|        |        |      --------------------------------------------------- W' Y% J5 T# C
|        |        |                                                          l# f  \; R, P0 o) u: O+ @  P
|        |        |  对于 run-length 数据包而言,头信息之后是一个简单的0 G1 Y$ m0 L( a" t
|        |        |  颜色索引,且假定该索引被重复头信息中低 7 位表示的次数- v0 {2 m) C& q! j6 d: L8 z
|        |        |  run-length 数据包也许会跨越扫描线
$ K. n8 s  x, z3 L8 F) f|        |        |  (扫描线起始于某行结束于下一行)
+ M- W  [& {0 k6 ]3 ^! |! s  U+ P|        |        |                                                        0 ], A$ h$ [! ?/ t9 [( o* a4 G/ M
|        |        |  对于未加工的数据包,头信息之后是颜色索引(数值由头信息
; \$ X) X/ S5 {& D; z  x|        |        |  给出)该类型的数据包也可能跨越扫描线; Y9 F6 f- ?+ p1 o. _: e. A, s& `% `
|        |        |                                                            0 i2 k% @5 _6 }
--------------------------------------------------------------------------------
+ G8 Z" q  q5 n7 d! \2 }
7 [. s2 T5 p( ]+ s2 [8 C8 A( L* L5 C  I

' ^: Q* @, ?; j0 p  G$ H
2 g6 f& s! P& J* K--------------------------------------------------------------------------------$ b; R5 B; N! ]' |- s
|数据类型 10:run length 编码,rgb 图像  P2 n' y6 f: V
|--------|--------|------------------------------------------------------------
2 d) Y$ P% a; V8 x6 Q+ v9 }6 ]|   偏移 |   长度 |                         描述                              7 w3 R; T, ]4 f. N
|--------|--------|------------------------------------------------------------0 r- j: Z- A/ p' w) q% X
|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               % b% Z$ C$ u$ i0 A6 W/ O
|        |        |                                                            
5 [* W- P( Z" s0 u- P|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     
" v, k2 Q) m+ r8 `|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     
$ f5 x6 D5 m+ Q( g- Y4 h1 y|        |        |  信息字段。   
. a' \7 _, ~0 `5 v, U5 r! m$ B. T|        |        |                                                            ! w" q9 F8 T) e: d* {
|--------|--------|------------------------------------------------------------
# L" S/ P1 }4 X4 u|    1   |     1  |  该字段的内容或者为 0 或者为 1;0 表示没有颜色表,1 表示
% t2 B4 c. T$ Z|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。2 P' s; r) k9 t" {1 |) S
|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射
, ^# `( v1 k9 n# A$ J9 |* _3 Q' O|        |        |        中的第一种颜色) X: b" K& f; _' s7 y" o
|        |        |                                                            ! ~0 N+ G- O0 G6 l: c  _
|--------|--------|------------------------------------------------------------0 p6 s. [+ W. h0 j+ X. o9 I
|    2   |     1  |  图像类型代码+ Y/ _% [, d, g
|        |        |          ( I9 m" F7 e+ a# E" p% z2 M1 ?
|        |        |  本类型该字段为二进制 10
" o: x4 W. P2 |5 D6 p* W. z, L3 C|        |        |                         1 Q8 X5 J( ^  y$ n0 R7 L3 e
|--------|--------|------------------------------------------------------------
6 |/ E- i" U, o. v|    3   |     5  |  颜色表规格; u; |9 A5 a7 `, A+ \: a
|        |        |                                                         " n! M- v' D5 o: N
|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下; `4 s0 f; L5 C$ w& |6 r7 v
|        |        |  6 ?+ u1 W2 i/ M4 |" a6 X! q2 P
|        |        |  . p7 n9 N! \2 m7 Z" z
|    3   |     2  |  颜色表首址8 i! Q# O9 D. ]5 c* Y& R
|        |        |  颜色表首元入口的整型(低位-高位)索引' W" C0 M# M7 P% {' S5 X
|        |        |                  $ z6 E! s# {- Z* e& z1 d0 K
|    5   |     2  |  颜色表的长度
9 l# t! @2 h$ `. ?1 j4 Y& ^|        |        |  颜色表的表项总数,整型(低位-高位)     
7 w( T7 T! @) u5 l2 z. S|        |        |                                   
  x9 ?2 m3 Q# O0 ^9 L3 g6 x" W|    7   |     1  |  颜色表表项的位(bit)数8 Z- j  K; @! B, Z2 s
|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA+ M4 y3 f  g9 F4 Q8 m* G: H
|        |        |                                                            ! n/ |. S! n) C: @" d
|--------|--------|------------------------------------------------------------
( w- C- u( Q. E7 r4 d|    8   |    10  |  图像规格                                               
' H+ t5 G( M9 T# l|        |        |                                                            
! q2 i8 T+ s$ g9 k+ A# t: a$ m|    8   |     2  |  图像 x 坐标起始位置                                       6 d* G5 B+ Q. |9 M
|        |        |  图像左下角 x 坐标的整型(低位-高位)值               " u1 k" a0 J& b6 N
|        |        |                                                         / Z! B% ^  _, S& d
|        |        |                                                            
' u0 ]# o5 T. U5 z- U& P8 M|   10   |     2  |  图像 y 坐标起始位置                                       0 e$ d& l0 `( P% j- E- {
|        |        |  图像左下角 y 坐标的整型(低位-高位)值               
2 n8 F! M, N/ s3 K$ G' W" C|        |        |                                                         5 w% X% u( G' I( b3 ]5 G+ o1 q
|        |        |                                                            
. Q  H8 a0 L, W|   12   |     2  |  图像宽度                                                   
* R) [' U1 {" s8 u2 v|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           * D# b" b9 W: |1 G
|        |        |                                                            " U5 \* k9 f" v* H! n3 g$ {* p
|   14   |     2  |  图像高度                                                   
* u; v- p- Z0 A' Y|        |        |  以像素为单位,图像高度的整型(低位-高位)值               ; U' j5 y- N2 N2 Y" C
|        |        |                                                            
5 F. H7 S4 A' o|   16   |     1  |  图像每像素存储占用位(bit)数                             $ |' s6 O9 J, c: n
|        |        |                                             
/ l! S" W" J7 n. ?|        |        |                                                            
% z" s8 V  a8 i1 `|   17   |     1  |  图像描述符字节                                           0 z. ]* N' ~# h8 x
|        |        |  bits 3-0 - 每像素的属性位(bit)数                  
' M1 s! p# w  o; H|        |        |                                                        " R& z8 i2 \2 A; \# u& R1 I. `
|        |        |  bit 4    - 保留,必须为 0                               . i  M3 j$ i9 R, v" P0 o1 j+ n
|        |        |  bit 5    - 屏幕起始位置标志                           
. w+ s+ F/ M* ]9 N8 c- T; K|        |        |             0 = 原点在左下角                       ! ]8 X. ~1 f4 X+ R& P& j4 z0 [
|        |        |             1 = 原点在左上角                         ! K. x1 e. {) N
|        |        |             truevision 图像必须为 0                         2 {7 }/ Z$ N% N+ S) N: }2 O  U
|        |        |  bits 7-6 - 交叉数据存储标志                       
4 j4 k& u+ b, t|        |        |             00 = 无交叉                                   & i: \: f1 E8 t7 _: F# K+ r
|        |        |             01 = 两路奇/偶交叉                        
4 n* c; K" n# H+ f3 Q, E  ~! s|        |        |             10 = 四路交叉                              
9 a9 m: Y8 L( }* W- x4 d|        |        |             11 = 保留                                   ) ~5 x2 N) C" m; E# |$ |
|        |        |                                                            : n2 [4 V7 y, u) z. @5 T! U
|--------|--------|------------------------------------------------------------
3 {2 v$ e% u9 I# x: y|   18   | 可变   |  图像信息字段                                       $ T9 |2 N4 _3 G, A
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   : P  {1 p! L+ h% {2 S$ f: |: i* O
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以    0 z$ \* X& U. R
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   
* V$ w) s: o5 K|        |        |  之后
8 z6 \% i% q+ {' B' m' J. z3 b|        |        |                                                            " p3 w# m" O7 J( e- E3 m6 h
|--------|--------|------------------------------------------------------------+ h2 T7 d/ K! ]( Q" g5 b! a
|  可变  |  可变  |  颜色表数据                                                
" p; V, n' M, F& F+ y|        |        |                                                . c6 W# u6 A- Q
|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取
6 S5 O( U; J: z/ A" ]: t|        |        |  图像颜色表规格中描述了每项的字节数,为 2,3,4 之一
4 T# ~6 @; o$ o% Z" n6 Z|        |        |                                                            
; ~  a' ?5 X- T7 L3 K, s5 s! F|--------|--------|------------------------------------------------------------) v! ]8 u1 K* F+ C& q
| 可变   |  可变  |  图像数据域: N  _1 D7 M% Y$ Y! w2 _
|        |        |                                                            
- p+ e  P; j) o|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放) K' [; R: h8 g6 t9 Q, s( o8 Q
|        |        |  在数据包中;有两中类型的数据包:run-length 数据包,/ o7 G* \+ h* p
|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,* s. Y0 k. n- p) ?% D2 F
|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域& C; c$ O6 x$ m% A
|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当
, k  T. M$ d( E; ~( O% Z) `|        |        |  它为 0 时,表示未加工的数据包3 H8 F  j8 c* ]% }5 t
|        |        |                                                           
7 d' M$ T$ Y  r7 c- C6 [1 p. w|        |        |  对于 run-length 数据包,头信息含义如下# j; u2 x6 v" x- A
|        |        |      __________________________________________________    ' M, v6 [3 S) C" |) u) B8 F* Y
|        |        |      | 1 bit |   7 位的重复记数减一
" e+ V4 m* q. T1 F& t4 S|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |
; }3 ~8 N- k- @( ^|        |        |      |       |   的运行大小为 128,(译注:原文为     |
5 L& |. N6 D$ I8 ||        |        |      |       |   the largest run size)          |  
* |# U6 }" p$ {& D1 y2 {# y|        |        |      |-------|----------------------------------------|7 C+ I! \& D% R/ Y! g3 m
|        |        |      |   1   |  c     c     c     c     c     c    c  |# U! X- y; ^  L0 r. ~; u
|        |        |      --------------------------------------------------
- U; A8 f0 B. x|        |        |                                                        
* b4 ?) k/ p" O5 l) P( A1 v# I|        |        |  对于未加工数据包,头信息的含义如下
5 l- ~7 w8 j  a3 ]|        |        |      __________________________________________________
% n/ M+ g2 ~* f/ q( J0 ~|        |        |      | 1 bit |   7 位的像素个数减一                   |* l, E  }) L* L' d
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |
/ z- ]- l, h+ `  I- }0 U. H, X|        |        |      |       |   类型的一个数据包中像素个数不能大于   |
( @0 Q! ?' E% e|        |        |      |       |   128                                  |9 B' v6 \8 D* k1 x9 r. M& v
|        |        |      |-------|----------------------------------------|& Y* a) d2 f- R3 \/ B' G2 d
|        |        |      |   0   |  n     n     n     n     n     n    n  |
6 y! X4 W- k& ^, t5 I; A* i; \2 d|        |        |      --------------------------------------------------
  [* i, m0 u) X  x4 h|        |        |                                                            $ N  [( g5 c2 f- E3 p6 q7 [2 ]! D
|        |        |                                                            ' o# y7 E- J% D% |# \
|        |        |  对于 run length 数据包,头信息之后是一个简单颜色值,/ K2 a7 A) W( |  S5 P; p
|        |        |  且假定该值重复的次数为头信息中记录的数, ~! H) K3 C, I/ p" A0 ]# E2 v9 G2 q' q
|        |        |  run-length 数据包也许会跨越扫描线- b9 L3 u/ |. `( h# q
|        |        |  (扫描线起始于某行结束于下一行)
4 Z, J0 b8 H0 ]: R9 l1 ?|        |        |                                                      
' ~9 j1 k+ i" i  C0 _|        |        |  对于未加工数据包,头信息之后是颜色值(数目由头信息指出)4 ^* v+ o4 q! x  X
|        |        |  
+ |0 H2 F; M( B5 z2 O. U" x|        |        |                                                
  z7 x/ f8 D' G# `5 u' l|        |        |  颜色表项自身有 2-字节,3-字节或 4-字节几种大小(分别4 @  t. M2 t2 F9 M6 U0 M% N. y7 O
|        |        |  对应 TGA 16,TGA 24 和 TGA 32)形式如下:& |/ j3 d8 b$ T' A9 |
|        |        |  
" U5 w- I9 g7 D4 c: u6 R|        |        |            
; H  U  z% C2 L% E|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               
1 M9 n, S7 N1 O+ x|        |        |                                                            7 e# V, [6 I, l& H- J
|        |        |  2 字节表项中,两个字节分解成如下形式:               : k: O) G3 u# X1 B) g4 Q
|        |        |  arrrrrgg gggbbbbb                           & u" B6 t2 H, v: r/ {% G
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  / s5 H/ l: F: `5 e# A, I; ~
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位1 @( |7 A! y$ ?
|        |        |                                                         
9 t$ L# d6 k+ q( j5 @% e% a  ~|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个
% Y- D% N  n& k4 b  t2 ~" f& V|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象+ l2 p. n2 D+ S$ j8 X! b
|        |        |  TGA 32 类型的图像那样存储
4 X' m; P/ I7 \|        |        |                                                            ) l# z  z$ I% j- f
--------------------------------------------------------------------------------& `6 Y. Z, `% _. b, n* a

6 ~; s& ^$ B9 E+ t/ {3 R. x& ?<完>
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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