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

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

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

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

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

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

原文8 _: r( F& I$ f& Y
http://dev.gameres.com/Program/Visual/Other/TGAFormat.htm
# ]2 z* W" h& K% N0 `/ I  ! m% J, V  g7 Y7 B( s4 Z/ q" R
根据david mcduffe编写的TGA文件格式资料翻译而成  e( A! o/ ~1 A5 u1 ^" @$ y& }1 e
 
2 @% u7 ?, E. d7 f- l7 q本文档是为满足许多对 TGA 图像格式的了解需要而创建的。本文摘录自truevision 技术指南的附录 C,如果2 B& F; a/ [! h1 ^% M. I
需要更进一步的信息,请致信以下地址:
- v8 q; p8 ?2 {, N
# [- t' B- T9 V           at&t
5 ~) m+ t# O+ |6 w           electronic photography and imaging center
$ P+ ?, x6 E, f8 `2 `% x           2002 wellesley ave.' g. v( H6 f0 Y: ?
           indianapolis, in 42619
2 M. H! C9 W. ]本文档不求全面,但力求准确。如果你发现了任何拼写错误或内容错误,请告诉我,( david mcduffe,
+ A; d, c/ _+ K9 z75530,2626 ),我将改正这些错误,谢谢。
6 V9 v( n4 F1 d1 M
4 h  N& ^. j1 ]. W/ l0 w' M. X! A不全面的原因是 TGA 包含了超过六种图像文件格式,而其中的几种较为常用。 我选择了我现在使用的格式并
( H' g+ a+ P0 ?# i8 e. f% [在本文中加以详解。 如果你需要本文中没有包含的格式说明,你可以与你的 truevision 代理商联系。
  W2 ~! u! Q  \- ~) F3 D7 H对所有的 TGA 格式的文件而言,其第三字节(二进制整数)用来区别各种不同的 TGA 文件。下面列出了该字( `! ?" ]  ]! j) e- K/ d
节表明的对应文件类型:  e$ L6 C% U6 @7 V$ O; d+ }
    0  -  文件中没有图像数据* x3 G- r) S; s
    1  -  未压缩的,颜色表图像) K& b4 Q/ V$ t1 l: a# p  n
    2  -  未压缩的,rgb 图像: h9 C; I9 o- V0 N, P: l3 }2 A* Z
    3  -  未压缩的,黑白图像! X1 R* f# D7 d3 y* t
    9  -  runlength 编码的颜色表图像
9 W$ ^( O# |4 d6 r+ l6 J, i    10 -  runlength 编码的 rgb 图像
4 B7 w1 B; e; f1 u- g5 Y1 ~    11 -  压缩的,黑白图像
. P% J* Z: I# q  N6 H$ f9 i6 ^' Z    32 -  使用 huffman,delta 和 runlength 编码的颜色表图像
% @3 c0 C! G: j, d$ Y$ P2 F4 }    33 -  使用 huffman,delta 和 runlength 编码的颜色映射图像,4 趟四叉树类型处理。
4 O- Z8 d5 K1 N# d8 j2 G    本文仅仅描述对应 1,2,9 和 10 的文件格式。' n: r0 K+ L& G' D
6 M" o+ o: C0 A) x7 U
--------------------------------------------------------------------------------% p. i/ u% `) R0 ?
|数据类型 1: 颜色表(color-mapped)图像
7 T/ G$ A7 _9 I' N( W) }9 E|--------|--------|------------------------------------------------------------+ o; Z7 {9 t) ]0 e5 H) y
|  偏移  |  长度  |                            描述! a1 P* Y  t9 L) t* |& e; _4 }
|--------|--------|------------------------------------------------------------  `) C' C& F. Y" u
|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               7 g+ z2 Q9 W! U3 s1 v* ]9 H
|        |        |                                                            9 d+ \0 T  P& t- z) M# Q" X
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     
( F- x) U$ Y, {: t|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     + |# I2 h  T8 J  X& v8 r
|        |        |  信息字段。                                   
) Y! M( u# f3 x' }% ?( c|        |        |                                         
7 O3 p8 i, s) F7 B7 a$ X|        |        |                                                            
" y  J; T2 e9 q: m|--------|--------|------------------------------------------------------------" E7 B8 B& p% h4 K$ w, M  n
|    1   |     1  |  颜色表的类型                                          
9 {1 {6 Q5 s# a|        |        |                                                            
- ?9 T% \! S" B, C# S  G|        |        |  该字段为表示对应格式 1 的图像而包含一个二进制 1           6 f" p! Z) f9 l! h" e2 |# {
|        |        |                                                            ( Y) S; t  y& p; ~8 @$ J" o
|--------|--------|------------------------------------------------------------% ^, i  F  r  [3 l
|    2   |     1  |  图像类型码                                            ( ~3 C6 E1 Q" C/ {( w% I2 D
|        |        |                                                            
  ~. w5 {$ l8 p+ `|        |        |  该字段总为 1 , 这也是此类型为格式 1 的原因               ' s; c0 ^' F. @/ `
|        |        |                                                            
. Q7 r& R& X0 E- p7 T|--------|--------|------------------------------------------------------------
% C: Z& o8 d) j0 G6 @+ l|    3   |     5  |  颜色表规格                                       1 l8 x% J2 {7 m! E. s1 l* Y" \* L7 a" r
|        |        |                                            
8 B* y) v5 _  |2 H1 F0 ]3 E|    3   |     2  |  颜色表首址                                                ) q- k% D2 s' F: t* @2 X9 |
|        |        |  颜色表首元表项的整型(低位-高位)索引               
$ Q* ^. q: e. G& ]7 _! A5 T|        |        |                                                            
/ s+ C' P# [% g! `9 E5 U|    5   |     2  |  颜色表的长度                                          
- t! X' J' Y& y, r|        |        |  颜色表的表项总数,整型(低位-高位)                   ! {1 A. y  ]6 ^- t  O9 L- P. v
|        |        |                                                            
. b8 x1 e' ~: ]2 G+ O|    7   |     1  |  颜色表表项的位(bit)数                                     g& |  `6 K9 G( i; M4 r2 ?
|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA ! t# _. x( L6 W$ K1 ?: K2 q
|        |        |                                    
, m# [7 [0 r4 h  f8 g( n; l|        |        |                                                            
' I  E! k4 ^( R  S% ?  w/ W8 k|--------|--------|------------------------------------------------------------
2 g2 P+ r, Z' p. W+ I|    8   |    10  |  图像规格                                               ' G2 y' ^9 Z& W  p1 {7 a4 T: L
|        |        |                                                              M7 ?/ \1 ~* W$ O( z; [4 F% t% S* e
|    8   |     2  |  图像 x 坐标起始位置                                       
: f+ y! z* w" W" e: P|        |        |  图像左下角 x 坐标的整型(低位-高位)值               
) e' _8 M; [5 @: x|        |        |                                                         5 l- R) Y+ m7 W8 A4 A% w
|        |        |                                                            
- K) j% b+ Y; G) r) ?|   10   |     2  |  图像 y 坐标起始位置                                       ( d7 K8 |5 W! D6 {8 D
|        |        |  图像左下角 y 坐标的整型(低位-高位)值               5 I: r6 v9 N! o% V" N& n
|        |        |                                                         
( T+ K8 M' J& ?4 K/ o% I: f. V|        |        |                                                            
/ U2 c4 ?% |' |0 \  L* f! E' ~|   12   |     2  |  图像宽度                                                   / Q9 E' L9 P2 E! Q$ P5 U7 G
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           
# @$ U+ T, C6 [8 ?|        |        |                                                            / S4 [2 z5 r' r* M3 Q
|   14   |     2  |  图像高度                                                   : `- }* O/ N5 {$ y  X
|        |        |  以像素为单位,图像高度的整型(低位-高位)值               ! ^7 z6 ]' j% h6 q/ y  d
|        |        |                                                            
8 ^+ E2 c) t) i! E8 k6 V1 q|   16   |     1  |  图像每像素存储占用位(bit)数                             % x% J. l; v: X  z
|        |        |                                             1 }& L; _7 u# z5 O
|        |        |                                                            . L0 T; k3 r2 }+ }
|   17   |     1  |  图像描述符字节                                           . Y/ t7 u1 x* O- `; U
|        |        |  bits 3-0 - 每像素的属性位(bit)数                   4 d) D$ y  ?) A, Z+ R- D+ u2 c
|        |        |                                                        
2 D$ c. x5 _* d; c7 l( ||        |        |  bit 4    - 保留,必须为 0                               5 N/ S" m3 A2 i
|        |        |  bit 5    - 屏幕起始位置标志                           ( Q, V' _* C, i$ _, L
|        |        |             0 = 原点在左下角                       
3 ?- z4 v! m7 H0 R- n2 l; \|        |        |             1 = 原点在左上角                        
3 a. {$ {0 r5 E! T2 m  X) k2 K|        |        |             truevision 图像必须为 0                        
2 s! A) }, o; q5 u. d" `|        |        |  bits 7-6 - 交叉数据存储标志                       
1 d8 N& Q: f6 l) S: r|        |        |             00 = 无交叉                                     P' U7 {- F  z! }6 H) [
|        |        |             01 = 两路奇/偶交叉                        6 v7 s: ^. p3 ~2 ]
|        |        |             10 = 四路交叉                              
" r' b, s9 B- Z) i# j|        |        |             11 = 保留                                   ! N3 q+ N$ u3 x& A% Q, X  a
|        |        |  这一项应该设为 0,不要问我为什么                  
+ Q1 r0 w" c3 ^|        |        |                                                            
0 H6 A9 e7 O* @" |8 c|--------|--------|------------------------------------------------------------# {0 Q) |% `1 v: [# P6 n. P3 {/ o# k
|   18   |  可变  |  图像信息字段                                       + T5 j$ g5 |3 [" v
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   
. S* m0 v0 N+ }5 K* Y2 U|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
% A- |4 a8 s* R8 q" K|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   
9 m7 F9 m' V4 R( e3 N4 \# }|        |        |  之后                              
7 f& I* v/ M1 i' p|        |        |                                    2 t1 K  L5 o, \2 G$ X4 Q
|        |        |                                                            
2 X! D( m' ~/ U& r: _8 p|--------|--------|------------------------------------------------------------% {7 j* Q' Q$ ]. h/ q4 q
|  可变  |  可变  |  颜色表数据                                                
% S3 R4 x8 j  X# T# l) E|        |        |                                                            + G% @6 I. _( I+ l: E1 `4 [
|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小      + k! x4 w; J) W
|        |        |  和数据项数目决定(在前面相应的说明字段中给出)            6 n: v" S1 ]; v% G9 v& u. E7 h; P
|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit) : G5 I9 U; T  ~0 Y
|        |        |  被认为是属性位。                           9 g+ z: i! C  W5 R0 O" L4 D, R
|        |        |                                                            
' ]& h1 m) r* ^, j$ G|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,( h- @8 g) `: r. c) @/ }9 A
|        |        |              字节 3 表示 RED,字节 4 表示属性           ) Q% W9 T1 R( X$ T9 U. i
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               
) g: O, [+ S9 Q7 }|        |        |                                                            & q9 C" W( z/ _: w- \
|        |        |  2 字节表项中,两个字节分解成如下形式:               ; Z+ k* U5 x- S( p7 L% X7 Z
|        |        |  arrrrrgg gggbbbbb                           
) E# N# \- B; m( d) p7 d( R|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
, }' e0 ?) o3 d' }7 e|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。  5 {1 n$ m% K. ^& E  C* |  L' f
|        |        |                                                            
" g3 `" X, @. |- l$ `|--------|--------|------------------------------------------------------------
% o( F# }% \0 i, z|  可变  |  可变  |  图像数据字段                           ' O, L& o  q# B4 R, f+ G, Z
|        |        |                                                            ' b" @7 p, i  m& l
|        |        |  该字段给出了 (高度)x(宽度)个颜色表项索引,每个索引    $ {1 o- C' M5 E  }" U2 N
|        |        |  以整数个字节的形式存储(典型的例子如 1 或 2 个字节)      
1 }3 m3 y5 A+ P" n|        |        |  所有的数据都没有符号,对于 2-字节表项而言,低位字节是     
0 y7 @% X  L3 Y7 f7 g  ?2 w5 \1 m|        |        |  先存储的。                               ) N, S0 I3 Y# p/ _& x' d: M
|        |        |                                                            ' U& E! n4 S; p6 E8 A* M7 m3 |
-------------------------------------------------------------------------------7 \6 k* F) k. {
  s3 d  x; Z" X( N1 G- D( E

& ?$ Q+ y6 Y+ C! ]( u, Q4 D# u5 g
; V( Q+ n/ D3 C. c' d/ \--------------------------------------------------------------------------------8 `* Q% R% j8 X9 b$ u6 B
|数据类型 2: 无颜色表 rgb 图像                                    S5 \. j! b( S$ ?: D! ]
|--------|--------|------------------------------------------------------------' `, w% q% P$ [" G4 J
|   偏移 |   长度 |                         描述                              ! _& V/ }- M- ?. d
|--------|--------|----------------------------------------------------------
4 h* T2 \7 Z" C8 W|    0   |     1  |  图像信息字段( 见本子表的后面 )的字符数2 I- z8 Y9 R& f5 {
|        |        |                                          
: f/ u! C4 m8 f+ ^( ]|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度' c$ v) H; ^1 a& F" u
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的4 H. {! K7 \' }6 v0 Q( K
|        |        |  信息字段。) p) K1 {% ]: V1 J4 ~
|        |        |
3 Z- h0 z3 T" A|--------|--------|------------------------------------------------------------4 l- ], A: g( V0 a$ S
|    1   |     1  |  颜色表类型
1 u6 @: h2 Y6 ?1 d8 i|        |        |                                                
6 w7 O& F# ]( ||        |        |  该字段的内容或者为 0 或者为 1;0 表示没有颜色表,1 表示* O3 \6 x* a1 d7 W% j; O% b3 X+ R
|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。
7 Z! S+ B! g' U7 F6 S" H1 L|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射
( a' ]5 w; Q; O/ U- n% B/ x: m|        |        |        中的第一种颜色
5 p- G- c" W3 g: J|        |        | % E9 b- \* [1 \0 E2 E& z4 n
|--------|--------|------------------------------------------------------------3 ?0 \% a- R& N- O
|    2   |     1  |  图像类型码
3 q# A) @3 q3 j|        |        |                                                     
. q) E' B: ]4 g6 X+ h1 G) w|        |        |  该字段总为 2 , 这也是此类型为格式 2 的原因    " ?# {! G) K8 K8 ~; L; j/ b: m
|        |        |  
3 k  \! m/ _% z; h2 ~/ y# G. d/ j|--------|--------|------------------------------------------------------------! _7 |/ O: G1 R5 |
|    3   |     5  |  颜色表规格
' v* k0 c/ K! B0 W( k|        |        |                                                         , F  }7 c9 r, m  n7 P, v& i- |
|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下1 ^% e  r0 ~. A( f
|        |        |  & E' M+ l+ X2 x
|    3   |     2  |  颜色表首址
) t, I1 q. Q' S5 ?. d; q|        |        |  颜色表首元入口的整型(低位-高位)索引; z, D' N' u8 \: }' H& g
|        |        |                  
8 S( u! {& R- W/ r( t|    5   |     2  |  颜色表的长度* _) ?4 J: w" C
|        |        |  颜色表的表项总数,整型(低位-高位)     7 F# O8 C: |( A8 R9 S+ Q
|        |        |                                   
- D. f8 J0 w8 P  Z' Y9 w. ~|    7   |     1  |  颜色表表项的位(bit)数" t, R$ X: m3 x# f
|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA7 M4 M) c# K9 h7 `! o; H
|        |        |  
* Y5 b. O* L& x. F|        |        |                                                           
# f" j$ F: N: z* j" L5 M|--------|--------|------------------------------------------------------------0 a3 V% `6 J8 X+ v+ l+ A
|    8   |    10  |  图像规格4 y" F, b3 x0 N  _
|        |        |                             $ B3 h1 i/ ~# h8 a3 z
|    8   |     2  |  图像 x 坐标起始位置      
9 ?3 r% |6 X7 D3 P$ ^|        |        |  图像左下角 x 坐标的整型(低位-高位)值7 G4 V/ _; ?9 ~. O4 Y1 ^  {4 ?
|        |        |  & T' `6 b" Y- T( p2 X' s' p
|        |        |. ]' y$ C8 C! B4 a, J
|   10   |     2  |  图像 y 坐标起始位置) u" p* |) ?0 l
|        |        |  图像左下角 y 坐标的整型(低位-高位)值; E* |3 I! b5 e2 j% ?* |( @5 D
|        |        |  
6 d$ d: ~% ?& d" |8 S3 L|        |        |; i; c2 F8 m) R$ [7 D" P! F0 B
|   12   |     2  |  图像宽度
1 E! W4 Y0 e. {: i: E- r|        |        |  以像素为单位,图像宽度的整型(低位-高位)值, z, ^5 n% P$ J# R# e3 @
|        |        |
8 Q3 a+ f  f" R+ Q|   14   |     2  |  图像高度
& i; q( M5 L8 |1 r8 S|        |        |  以像素为单位,图像高度的整型(低位-高位)值) E8 l. J" ^3 @( S8 A
|        |        |
) S0 B8 v9 z6 c4 E8 ^|   16   |     1  |  图像每像素存储占用位(bit)数
/ g0 O3 w& Z  x$ q2 b|        |        |  它的值为16,24 或 32 等等决定了该图像是 TGA 16,TGA24: q  @# C; @, O0 O8 U1 \" ?
|        |        |  TGA 32 等等
- ~9 D7 B/ Z+ T5 C|        |        |
; [4 Z2 I3 P' I; H8 s7 X6 Z4 U|   17   |     1  |  图像描述符字节
: @! a% }, x: q  ^& {% v  t|        |        |  bits 3-0 - 每像素对应的属性位的位数;对于     TGA 16,
/ r/ r/ N* ^+ \9 H6 ]/ e|        |        |             该值为 0 或 1,对于 TGA 24,该值为 0,. Q3 W8 X" q9 w" K+ T+ p4 {5 ]
|        |        |             对于 TGA 32,该值为 8
* U% z% q0 z  ~) p- `& m: Q: U|        |        |             ! k3 Q& s1 p& x6 M# l# U
|        |        |  bit 4    - 保留,必须为 0
7 e1 s7 y( T  i7 {$ ^+ J|        |        |  bit 5    - 屏幕起始位置标志0 u* m# k# D# C- h5 f3 W& y
|        |        |             0 = 原点在左下角( |, |* P( g) m& {! l
|        |        |             1 = 原点在左上角0 ~0 @& M7 G! L) [
|        |        |             对于 truevision 图像必须为 0
# i4 c& m8 u) ^# v3 D7 l) y! B|        |        |  bits 7-6 - 交叉数据存储标志, Z: G5 D5 C. }/ U' i
|        |        |             00 = 无交叉                                   9 E' D- O* d( }7 e# n
|        |        |             01 = 两路奇/偶交叉                        
6 M/ ~8 ], S( \! q|        |        |             10 = 四路交叉                               - w" Y, ^( L& ^, S6 ~# l
|        |        |             11 = 保留
3 f" V& w: ?: r: r2 K* \$ d|        |        |                                                            
4 N7 ~5 W' o/ W, o|--------|--------|------------------------------------------------------------
" p. o$ d; m8 X* N& v: ]7 I|   18   | 可变   |  图像信息字段                                       0 i% \: X: f+ y, ^$ T9 ~" J* |
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   ) T4 @9 r: C! c# C
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以    6 I4 v2 P0 `0 @  R7 S% W) y
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   " l& v3 f0 h' n7 ^  E& l3 U; U
|        |        |  之后                               7 s- x6 Q# Y: g5 u4 F; y
|        |        |                                                            ( T2 j& E4 e$ \
|--------|--------|------------------------------------------------------------" A/ }8 {$ |4 ~* k9 J) v& \' W
|  可变  |  可变  |  颜色表数据                                                
3 P7 }% ~  B% e+ V9 g; `8 ?|        |        |                                                7 }; E# S2 m7 s* @2 C, F
|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取
5 ~& w6 f6 S+ Z3 p  w|        |        |  图像颜色表规格中描述了每项的字节数,为 2,3,4 之一3 {0 I2 k; b0 G1 R7 U9 |
|        |        |  6 X, S8 Y+ u5 e; d6 E
|        |        |  1 Y! r  j: Q' l2 H7 P' u
|        |        |  & e& P  w  C; C* y! x+ U' U  Q
|        |        |  3 s* B+ Z5 k0 H( O0 [( ~7 }
|--------|--------|------------------------------------------------------------
7 r; I3 ?; A" b/ H: z|  可变  |  可变  |  图像数据域$ ^( b8 c' n/ u: X0 C
|        |        |                                                    5 s, A/ i' ^* W4 @
|        |        |  这里存储了(宽度)x(高度)个像素,每个像素中的 rgb 色值
0 V/ E9 X$ N1 ~2 m! ^; w8 w|        |        |  该色值包含整数个字节
- \0 A, o. u2 m6 d9 v) T|        |        |  ( G% e' ?0 K/ M( n3 a
|        |        |                                                           
' g* G" p. j3 z4 Z/ u3 I8 A3 b; b|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               $ J) a& z9 l3 c3 A
|        |        |                                                            / G1 p1 _) w: G0 Z
|        |        |  2 字节表项中,两个字节分解成如下形式:               
2 r- a' p+ c. R1 D5 F- z; R/ Q. n& q|        |        |  arrrrrgg gggbbbbb                           
6 N" Y2 v' y; T# o- F4 r|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
- r% o% |- ]+ c|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位+ X$ P: F6 g5 a, ~% q
|        |        |                                                          " E$ `! k# I$ |( M5 W4 ^- h' h
|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个: ~% q2 B" a& n, s' M
|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象$ {8 [, @/ q( L1 X" k# g( d
|        |        |  TGA 32 类型的图像那样存储& V8 C9 l6 E1 A: y
|        |        |  
* V% [1 Z# B7 v5 t1 }  B|        |        |                                                         4 b" a! i+ O8 P! B5 J. g5 W% |
--------------------------------------------------------------------------------
$ e- i8 ~  v( R4 J3 c9 E, w5 B, K& D, n+ c  g4 c* D8 L
, N% c+ Q- C" k6 e; r

' E4 [; a) N1 n" o, G% U; _: e  e- \* C5 H! Q
--------------------------------------------------------------------------------7 O4 ^$ ?* Q& d! q* P& s
|数据类型 9:  runlength 编码,带颜色表的图像& c2 c! d% h2 e5 D# a0 B
|--------|--------|------------------------------------------------------------
4 w, U, w, S$ d9 W! e|  偏移  |  长度  |                            描述7 q3 X* p+ |3 g( T: f, p5 @, l
|--------|--------|------------------------------------------------------------
' w3 j6 ?9 `! }; B|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               0 F- |' e* o# A0 t, e, w6 J- \+ C
|        |        |                                                            2 f- N/ k6 ^' @* ]0 B7 [$ M
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     
' ~8 x' O: t  \+ F/ J: L# q  t2 `|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     ! v! Y1 ]" Z6 o8 W
|        |        |  信息字段。    2 f7 ^5 x5 ~) K- Y  v. r/ D- D
|        |        |                                                            : A" Y2 @- b: ?* ]6 C
|--------|--------|------------------------------------------------------------' T% ?4 I  _8 \6 w0 H. U
|    1   |     1  |  颜色表的类型                                          
- h( l7 P1 n: B3 t$ U2 V|        |        |                                                            - U+ s4 ^5 n/ H) f3 c
|        |        |  该字段为表示对应带颜色表的图像而总为 1
' u; r4 B8 c- ?# _|        |        |                                                              M5 b! o5 L+ ?- o, `
|--------|--------|------------------------------------------------------------8 r' t- j# q) {- M9 T: b" S5 X
|    2   |     1  |  图像类型码
5 e5 w. L' f9 J0 L, I, B! e|        |        |                                                            
" y; S" c! \* c+ ~# ~% F|        |        |  本类型该字段为二进制 9
: }! A! W* M# c: {  w|        |        |                                                            3 a9 R1 z/ x' [; y; @: \
|--------|--------|------------------------------------------------------------' l, m' Y6 a; L* j5 v6 F
|    3   |     5  |  颜色表规格
  R7 i! i  ]* @, W: {|        |        |                                                         
  p0 [/ b* \( c' s|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下5 Q0 i8 _+ `7 B  F: h" _; h$ k8 R3 g: o6 S
|        |        |  
5 ]8 R4 d1 X# a5 v7 U4 a|        |        |  
1 M% \, [! N3 b  I; o! L|    3   |     2  |  颜色表首址' L# o5 i: [$ v# S" l  d
|        |        |  颜色表首元入口的整型(低位-高位)索引
/ y) N' E5 c' l, C2 R|        |        |                  9 g& A' n- E& m, Z
|    5   |     2  |  颜色表的长度
8 z  O- B; h0 T! P" K. ]% W|        |        |  颜色表的表项总数,整型(低位-高位)     ' ~9 G" q: a) G0 `; p+ @6 s. s
|        |        |                                   3 x. M0 O8 m. B6 q* Q
|    7   |     1  |  颜色表表项的位(bit)数
3 V7 w3 u! ~" m/ z: x- U) ~|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA# ]! c- ^% ]3 I% b2 K! X3 @
|        |        |                                                           
* |5 D" H! g0 Z9 S9 T& {3 Q|--------|--------|------------------------------------------------------------
! R+ |" }  v- F, s) I2 A0 `: T8 u( m- B|    8   |    10  |  图像规格                                               
/ U5 U# v9 `8 J8 Y2 [1 e) `|        |        |                                                            ( |7 T9 q2 @$ {$ i" y1 c; k
|    8   |     2  |  图像 x 坐标起始位置                                       
3 f3 E7 E9 y/ [1 |2 g7 r|        |        |  图像左下角 x 坐标的整型(低位-高位)值               9 e4 }0 e! N4 C  _
|        |        |                                                         
/ c/ B; ]( p7 G7 |8 ~|        |        |                                                            
$ K5 ]' U3 X9 T% l) l: a|   10   |     2  |  图像 y 坐标起始位置                                       
1 f- U& Y8 Q" U3 p" U5 h. ?7 c0 t|        |        |  图像左下角 y 坐标的整型(低位-高位)值               
5 m3 V, k1 W1 T9 R9 |! F( n|        |        |                                                         
  i, a2 w2 d; C1 N5 N|        |        |                                                            $ d( _- i8 s) a, T" S, K
|   12   |     2  |  图像宽度                                                   2 h4 _! |; ^8 p! \. w1 R
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           0 X3 K) f/ Y3 x0 ~% p# _& C
|        |        |                                                            
: h1 W+ S/ l) `4 ?- e# ^  r* B2 Q6 A|   14   |     2  |  图像高度                                                   
2 ~* F9 z+ X0 v0 C" [7 R|        |        |  以像素为单位,图像高度的整型(低位-高位)值                 z% s7 k$ S# l6 V3 y3 o
|        |        |                                                            
- |, V8 O& q6 {9 w|   16   |     1  |  图像每像素存储占用位(bit)数                             . z. ]; ~; c6 A$ M' ~: u9 @
|        |        |                                             , `% W: e- U, j9 L+ c* |% q
|        |        |                                                            
) P  l3 Y9 v" F6 R; s7 o|   17   |     1  |  图像描述符字节                                          
9 L% W3 m) k. R0 n! b& I|        |        |  bits 3-0 - 每像素的属性位(bit)数                  
& s, v2 b( G; Y|        |        |                                                        5 P3 _6 n( ]8 y
|        |        |  bit 4    - 保留,必须为 0                               9 p1 T2 m5 F+ O- x0 a' v
|        |        |  bit 5    - 屏幕起始位置标志                           
3 P. i5 S1 J* f- d3 i/ S- f) g- l7 D|        |        |             0 = 原点在左下角                       + @9 A; [; A' E4 O1 ^0 V
|        |        |             1 = 原点在左上角                         , \0 V6 Y; F$ p8 B
|        |        |             truevision 图像必须为 0                        
5 e+ Q4 h* c$ e- I5 h* s|        |        |  bits 7-6 - 交叉数据存储标志                       2 ^  e. H+ K! \
|        |        |             00 = 无交叉                                   : e( b2 ^4 G& @5 M
|        |        |             01 = 两路奇/偶交叉                        
/ x) o% z, T% Y4 }" D|        |        |             10 = 四路交叉                              
8 Z+ _5 |  x  r, z" p" u|        |        |             11 = 保留2 b5 ?3 F* F' N  K
|        |        |                                                            % g2 B' S1 k7 a6 S( Y% C' J+ P
|--------|--------|------------------------------------------------------------+ D2 j5 `" k$ n5 W# N! F  b4 S  H7 @
|   18   | 可变   |  图像信息字段                                       
% }4 E* m. {  J3 i( N- M6 c, ]|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   , o1 t- D8 ]: x7 T9 x
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
5 c4 l+ }8 B0 S- X* n4 q' V|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   
% p4 A1 j# q; v! P; J  l% k|        |        |  之后
5 g. d- e! U" i8 ?  j  r|        |        |                                                          ( w. V6 c$ F0 t
|--------|--------|------------------------------------------------------------
# D0 o, m" d; r( p1 n% I2 ]& f|  可变  |  可变  |  颜色表数据                                                  O0 _- \$ B& a0 |; w
|        |        |                                                            5 T! I9 H* I+ X8 u" n. N
|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小      
2 J" ~! u. v! e) Q9 ^5 U! }|        |        |  和数据项数目决定(在前面相应的说明字段中给出)            0 s. O" @/ O. L$ K8 i, K; u( G* I
|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit)
# E4 I' z, r, c4 N5 e|        |        |  被认为是属性位。                           
3 H4 o- s8 b$ Y$ p( T0 F1 y0 }7 c|        |        |                                                            3 Q) w! l' |0 y8 T: u  N
|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,( B' K7 m! [$ z
|        |        |              字节 3 表示 RED,字节 4 表示属性           
, R" S; f# ?! {|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               * L2 p* X2 S& l" o# R
|        |        |                                                            7 `1 i- l- E4 o) r2 A: E
|        |        |  2 字节表项中,两个字节分解成如下形式:               
+ J# V5 d5 ~: i, d4 [0 B: _$ p( O|        |        |  arrrrrgg gggbbbbb                           
8 k. a8 f& Z$ v|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
, E# a5 |; U% h. u2 l|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。/ x) |0 S: ~- K9 `7 E; y
|        |        |                                                            
) f) b7 u$ R2 [& u2 a/ S|--------|--------|------------------------------------------------------------# b9 L; e3 {+ [* H$ f" u- d! P
| 可变   |  可变  |  图像数据域1 X1 T5 m4 U  ?4 f4 l& s
|        |        |                                                            
' ]3 y, X3 C) T% ~* h|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放
$ c* z( W6 @/ X1 x5 q* i|        |        |  在数据包中;有两中类型的数据包:run-length 数据包,
2 x8 u# m3 ~1 ]& }9 a2 l% B  _|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,# _7 t4 \+ T' o, A) l( Q
|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域5 i$ D8 F. U2 g7 n: W8 x" N
|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当
2 g1 v0 R. A, R& _|        |        |  它为 0 时,表示未加工的数据包8 N/ j% W9 l, m1 Q
|        |        |                                                            + ]7 @% X6 S. d2 {0 Y
|        |        |  对于 run-length 数据包,头信息含义如下; D# Q8 T. u5 r8 @; Y5 H
|        |        |      __________________________________________________    + q; {4 `$ u! r0 [- \* g' R& }+ q" \
|        |        |      | 1 bit |   7 位的重复记数减一4 U4 ]' S5 o" t, i. Z* r0 q
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |
9 S- _1 k3 [) C0 S. g5 M|        |        |      |       |   的运行大小为 128,(译注:原文为     |
  M, _1 s% C; X|        |        |      |       |   the largest run size)          |  & G% A& C" O  c
|        |        |      |-------|----------------------------------------|3 J- j- C: o4 t) C1 J, ~
|        |        |      |   1   |  c     c     c     c     c     c    c  |/ I- S3 k8 @% Z- d1 f
|        |        |      --------------------------------------------------
) Q; U" ~+ y6 \$ Y& O( [|        |        |                                                        
6 D6 @3 M: b5 x  P: `: M8 x|        |        |  对于未加工数据包,头信息的含义如下* B+ Z9 ^* P0 m0 n" F2 W8 Y
|        |        |      __________________________________________________
2 W9 O, P) r! S1 T  i; f0 s# ?|        |        |      | 1 bit |   7 位的像素个数减一                   |
5 ~: f3 o3 T/ @$ V4 P+ Q0 @|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |
7 H% ^% h5 E9 M6 k6 b|        |        |      |       |   类型的一个数据包中像素个数不能大于   |
% m8 a8 o: [# B$ K, h8 }|        |        |      |       |   128                                  |
2 `% Z6 c1 Q* f: C% @$ b1 X|        |        |      |-------|----------------------------------------|& ]# k8 T8 h, X& d4 E7 Z9 a$ F
|        |        |      |   0   |  n     n     n     n     n     n    n  |$ E6 ?$ O& ]# ?. a' P% @
|        |        |      --------------------------------------------------0 _/ \+ C  r6 r- M6 J, {; I
|        |        |                                                        0 r; e# E; p& F8 u! A0 H
|        |        |  对于 run-length 数据包而言,头信息之后是一个简单的
% J8 X8 M5 r! T2 }8 @7 m0 k|        |        |  颜色索引,且假定该索引被重复头信息中低 7 位表示的次数2 H* Y! ~6 z& u1 ^( y
|        |        |  run-length 数据包也许会跨越扫描线
2 x9 k) x/ U% J" ^5 _|        |        |  (扫描线起始于某行结束于下一行)) p9 R7 m  v; `* r
|        |        |                                                        
% Z( R' c7 K: [) I|        |        |  对于未加工的数据包,头信息之后是颜色索引(数值由头信息
$ |5 n4 \: Y4 P5 k|        |        |  给出)该类型的数据包也可能跨越扫描线
5 j$ _7 a1 O& m' a+ C/ [|        |        |                                                            
, ]9 M" Z6 G2 J# b& a0 l--------------------------------------------------------------------------------
5 G& x; n+ o  j2 l6 ^- J  A% A3 U; X& f% o* ?+ }1 ?- N
& q6 n! J- Z8 ]4 @
- _6 v) v$ z$ ]* e- S

1 |8 [+ |: @( E3 [. e8 \--------------------------------------------------------------------------------
/ {" J' U5 K- P4 d" l# H|数据类型 10:run length 编码,rgb 图像+ E# b$ C$ b+ g" j4 C( Y
|--------|--------|------------------------------------------------------------3 `& t3 c7 H. z. b
|   偏移 |   长度 |                         描述                              , t- w. U( W* t( Q
|--------|--------|------------------------------------------------------------. @* B) d) \; A) e& ?) K
|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               
- ?9 a) O4 o/ Z7 m|        |        |                                                            ) Y$ a/ F/ `& x5 F
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     
1 t' v- F' k0 K+ ?; B8 z. \|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     . H1 t& ?9 c4 i) e" D/ H6 W  \
|        |        |  信息字段。   
! o; q0 w2 Y# g5 z, A% }# H2 E* o|        |        |                                                            * o  {$ w1 p6 o1 @
|--------|--------|------------------------------------------------------------* R8 L! U% a2 K: s! a# ?
|    1   |     1  |  该字段的内容或者为 0 或者为 1;0 表示没有颜色表,1 表示! h2 P( m& [# |. Y6 U
|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。" z3 P+ a8 [. ?0 m
|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射
- Q! z  B2 m* {7 y$ z  w, ||        |        |        中的第一种颜色% e1 w- c% b: m# G; C
|        |        |                                                            
0 W  }! A6 D6 h4 F1 q# `- F: [|--------|--------|------------------------------------------------------------2 v) X6 t% s6 @+ E+ c' Y  M; J
|    2   |     1  |  图像类型代码9 s" X3 h$ m1 v& ~6 O/ f
|        |        |          ) H1 n$ L( s5 p( g; r8 [/ _
|        |        |  本类型该字段为二进制 10+ u+ T( o7 D: z& ^( R: a) W
|        |        |                         4 k# x7 D- |5 g
|--------|--------|------------------------------------------------------------8 Z6 m% B/ k! v) L
|    3   |     5  |  颜色表规格) B( @' R9 n: G* W) E8 x
|        |        |                                                         6 Z3 O  F2 g4 ?
|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下# O- z4 l' u# b& D% D+ r) A' L! W
|        |        |  , M( J8 W" c. t9 ^
|        |        |  0 O9 x! E/ |% I+ D
|    3   |     2  |  颜色表首址9 ~; }4 _0 o3 A/ |3 `# y
|        |        |  颜色表首元入口的整型(低位-高位)索引
% l# v' n- B1 N# R& `9 B) Y4 g1 u|        |        |                  
  I: z4 O- m& W6 d5 `9 k* I|    5   |     2  |  颜色表的长度
6 @: S3 V$ E3 E6 _|        |        |  颜色表的表项总数,整型(低位-高位)     , G" ?/ x4 b* x* s; v7 C
|        |        |                                   
/ t# c7 Q0 M7 l1 u0 j8 U; q|    7   |     1  |  颜色表表项的位(bit)数
8 }, Z% ?; S* L1 {8 D|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA9 x/ j0 y5 R) _4 A1 Y' [& q4 b
|        |        |                                                            
8 |; c! s- v4 m# t& h, n|--------|--------|------------------------------------------------------------
; t  `$ S8 |+ ~* q( x|    8   |    10  |  图像规格                                               # u6 V  S4 S" g# I' F
|        |        |                                                            8 X  L. y1 b& o& n& n' C& `! `* V  B- G8 D' U
|    8   |     2  |  图像 x 坐标起始位置                                       
1 K# y" |1 _4 m4 k) k6 f* U, b|        |        |  图像左下角 x 坐标的整型(低位-高位)值               
" @; _/ }5 X  s|        |        |                                                         + E# j7 f$ H1 i3 D1 y5 ~+ r
|        |        |                                                            ) ?0 i0 R: M$ ^8 T
|   10   |     2  |  图像 y 坐标起始位置                                       
5 l, }; f$ v! n; y7 I; Y' G|        |        |  图像左下角 y 坐标的整型(低位-高位)值               6 Z( ^- m5 G, C6 b" ^% t' \$ A0 p- {
|        |        |                                                         
7 A- P; \! j( l/ V& O|        |        |                                                            
* o0 z* r0 a; p6 _3 Y: n% k: ?1 z|   12   |     2  |  图像宽度                                                   
5 e1 y& i9 @3 v1 }6 N8 V9 i|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           ) {& @# m1 \2 S+ f8 j
|        |        |                                                            
! f% H) z2 u3 I, j: }6 T" o  M|   14   |     2  |  图像高度                                                   & p) g$ _! S  o0 a3 B
|        |        |  以像素为单位,图像高度的整型(低位-高位)值               
( e2 Z: G! I5 v" `|        |        |                                                            
* {6 t0 t7 h. Q, l. {2 u' I|   16   |     1  |  图像每像素存储占用位(bit)数                             , U1 A+ u1 h% R6 l+ _6 _3 ^0 N7 c
|        |        |                                             
! g+ l! Q& L6 n0 q|        |        |                                                            & K* @% O) O& b$ o
|   17   |     1  |  图像描述符字节                                           * v" K$ j: \+ O0 }" l
|        |        |  bits 3-0 - 每像素的属性位(bit)数                  
4 P1 F# M$ `( g! f5 l6 R|        |        |                                                        ' q& o( W9 |7 ]4 ]9 h* E( _, e
|        |        |  bit 4    - 保留,必须为 0                               9 T2 Y6 z6 E5 R" V2 y" b
|        |        |  bit 5    - 屏幕起始位置标志                           
# K" k- ]5 V# m' o|        |        |             0 = 原点在左下角                       
" t" Z2 S8 Q2 x! D* b4 R7 d& y|        |        |             1 = 原点在左上角                        
+ J5 _4 W' ?3 G6 ?|        |        |             truevision 图像必须为 0                         * r8 ^" _" q: w/ H+ X; t0 a8 E5 o  s
|        |        |  bits 7-6 - 交叉数据存储标志                       ) v* x- i$ p' j8 \; `$ P
|        |        |             00 = 无交叉                                   
, U* Q% @) R8 {: v: j( H|        |        |             01 = 两路奇/偶交叉                        $ M* I; b% J* W1 r/ R% f
|        |        |             10 = 四路交叉                              
$ M: j0 I/ T9 I# V6 d8 X7 z  J* T|        |        |             11 = 保留                                   
9 L+ R) H' k: e' ?3 {- Q4 S|        |        |                                                            
6 x8 S6 r4 R: D( \* R|--------|--------|------------------------------------------------------------
: {/ o. I$ ~; S|   18   | 可变   |  图像信息字段                                       
0 g5 x. ]3 f, ^& F; }# v! ^|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   
0 y$ d: B. d* `& Y2 c- M7 M|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以    + M: A' ~" E, x( w0 o4 L4 K
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   
: {6 v! A9 W. m. Q0 x|        |        |  之后
& s; l- C+ m' m) R: s* {|        |        |                                                            
6 y/ q' D+ {( ~+ v' b|--------|--------|------------------------------------------------------------# ]$ v# e' z, h! a
|  可变  |  可变  |  颜色表数据                                                3 T$ U6 I6 g/ ^' ?. S0 a9 [* Q
|        |        |                                                
" f1 R/ e% S& [8 f+ T3 C|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取+ U( C0 r" v. G1 t) E1 h
|        |        |  图像颜色表规格中描述了每项的字节数,为 2,3,4 之一
: o# n- ]9 o& l8 n8 D|        |        |                                                            
( A8 r  m) B: X3 M9 K/ ]& R; L" Y|--------|--------|------------------------------------------------------------
: X: M  B$ }! x3 H; `1 h4 g| 可变   |  可变  |  图像数据域3 I6 r, }3 i' g, r, f  X( y
|        |        |                                                            
* u% w) @  U; _& H) ]' |+ t|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放. ~" T  c' M! A. r8 p, R5 L) W7 X9 T. U; ^
|        |        |  在数据包中;有两中类型的数据包:run-length 数据包,
5 f/ `$ E" W' [: _5 [! u* X: @5 T/ Z) }|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,$ ?0 a- z* M/ I8 [
|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域) r9 e0 k: }1 F
|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当0 `9 d& G0 h3 M6 _+ W/ `, B
|        |        |  它为 0 时,表示未加工的数据包
. l# D7 w  }0 M|        |        |                                                           7 ?/ A1 n) M  b4 g6 Y
|        |        |  对于 run-length 数据包,头信息含义如下7 U+ v# l7 l5 Z9 D, J* l
|        |        |      __________________________________________________   
" r2 J/ @+ t6 @|        |        |      | 1 bit |   7 位的重复记数减一
9 K) J  N# o2 F5 C6 J2 Y1 c|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |2 ?- U7 B0 x" L1 h$ Q( e5 k' H  ?
|        |        |      |       |   的运行大小为 128,(译注:原文为     |2 T0 T* V* l: J
|        |        |      |       |   the largest run size)          |  , Y3 C1 Z( E: B6 G
|        |        |      |-------|----------------------------------------|
" a' k( f6 `3 Q; i9 I  B|        |        |      |   1   |  c     c     c     c     c     c    c  |
5 d; E; k$ J+ Y0 n+ k1 A|        |        |      --------------------------------------------------
1 f" j% m4 ]; e: z8 L|        |        |                                                        4 H! P- O. w3 E+ s+ K$ V
|        |        |  对于未加工数据包,头信息的含义如下1 F  b# M2 ?+ O4 i, @0 K2 Y
|        |        |      __________________________________________________
' i( |) _. Z" `|        |        |      | 1 bit |   7 位的像素个数减一                   |% M( ~' `, F& C" v3 B+ b! x
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |' `0 c' @4 T8 g' H' l( S
|        |        |      |       |   类型的一个数据包中像素个数不能大于   |' _4 V" d9 j5 M9 T, B, B
|        |        |      |       |   128                                  |1 P) Y: ]: c; Y: T1 l' x1 b
|        |        |      |-------|----------------------------------------|" i1 e# u8 V4 I0 b- y, m" N
|        |        |      |   0   |  n     n     n     n     n     n    n  |
7 A, W* P" ~8 s/ s! W9 e|        |        |      --------------------------------------------------+ s8 y# ~3 t3 N, [( D
|        |        |                                                            
: W0 v9 d. g" T; N: F8 W|        |        |                                                            ; n& b% D( t( H& l! `! \+ F
|        |        |  对于 run length 数据包,头信息之后是一个简单颜色值,
2 y* V3 {4 E$ i+ \# n|        |        |  且假定该值重复的次数为头信息中记录的数
" E4 a' [3 w4 u/ W8 B|        |        |  run-length 数据包也许会跨越扫描线
/ g) g) a5 k' I, W" J% Y' i7 ~/ j|        |        |  (扫描线起始于某行结束于下一行)" k/ u5 M$ d: H
|        |        |                                                      
5 h3 u1 {$ a9 ]5 {|        |        |  对于未加工数据包,头信息之后是颜色值(数目由头信息指出)
0 X8 E: ~2 s! M|        |        |  $ S, c/ v5 ^- {; z
|        |        |                                                & C$ Y: \' H1 h5 Y7 p& o
|        |        |  颜色表项自身有 2-字节,3-字节或 4-字节几种大小(分别" D, V8 h7 ~! B' R$ o
|        |        |  对应 TGA 16,TGA 24 和 TGA 32)形式如下:9 X) `* E. j# I$ {
|        |        |  
# `/ X2 A* s( I5 Q" a# z- u|        |        |              @, K1 B7 D3 b! |5 r3 U
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               
6 @& q: T: |  Q5 }; Z/ G|        |        |                                                            
2 e" Q* F( ^& ?; u|        |        |  2 字节表项中,两个字节分解成如下形式:               
7 F: z6 K# Q9 k! Q9 S% o# i|        |        |  arrrrrgg gggbbbbb                           / d: e/ T: d; k0 N
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
0 n3 o' w" [5 T2 l|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位
& Y5 q! {. z! K, c$ x$ I1 d|        |        |                                                          % g0 _7 R! J" Q9 Y5 {9 W4 |: w* ^
|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个. R' C0 o- X. P7 t( M) D7 `6 [
|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象( ]; Z$ r' E0 }
|        |        |  TGA 32 类型的图像那样存储
4 b- e& m! @& @2 z  v|        |        |                                                            ; o+ {0 s1 e! c& c, w
--------------------------------------------------------------------------------
' q4 c. m2 |; D1 o+ |$ ^6 |* v: {0 w" b. Z8 j
<完>
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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