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

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

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

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

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

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

原文# G2 `3 v. N. e( H/ w5 b
http://dev.gameres.com/Program/Visual/Other/TGAFormat.htm2 n" o" ~; _( l2 q1 h! }; [
  
* @$ K+ V" V; I: E- b根据david mcduffe编写的TGA文件格式资料翻译而成* m& J; n+ a' O' K; F0 x9 c
 
4 \$ G! _: u" P1 l3 H本文档是为满足许多对 TGA 图像格式的了解需要而创建的。本文摘录自truevision 技术指南的附录 C,如果
1 E2 D: L/ |1 y需要更进一步的信息,请致信以下地址:  B5 k! Z% ?, `& e1 R4 e
( X5 K* q8 o: h8 k! V
           at&t
7 X$ t0 _+ I+ H; b. L+ m           electronic photography and imaging center& Q- w6 C0 B2 {) Y1 M
           2002 wellesley ave.6 N! C, ]+ X# ?) C
           indianapolis, in 42619
5 y) J/ c$ s: Z$ D本文档不求全面,但力求准确。如果你发现了任何拼写错误或内容错误,请告诉我,( david mcduffe, 3 {! n  F! A: r% |
75530,2626 ),我将改正这些错误,谢谢。1 W* e$ C9 J2 r
  A' _8 p# L& u) R# P4 U
不全面的原因是 TGA 包含了超过六种图像文件格式,而其中的几种较为常用。 我选择了我现在使用的格式并. ~8 F+ J) i2 N
在本文中加以详解。 如果你需要本文中没有包含的格式说明,你可以与你的 truevision 代理商联系。7 r" g: ]( r( G! K
对所有的 TGA 格式的文件而言,其第三字节(二进制整数)用来区别各种不同的 TGA 文件。下面列出了该字% v  J, J; R5 a% i- e+ ]! a5 N
节表明的对应文件类型:, r; h7 r  b4 b* F/ l' ?
    0  -  文件中没有图像数据8 E; F" C! Y4 ^  q
    1  -  未压缩的,颜色表图像
3 k" S, C& f( q+ C7 C    2  -  未压缩的,rgb 图像. j$ A/ Y  X% N6 }% A7 w  A- r
    3  -  未压缩的,黑白图像
$ ?2 \' O# x4 m& P* D$ m  h. D    9  -  runlength 编码的颜色表图像% [5 D- P5 A& c
    10 -  runlength 编码的 rgb 图像
' w1 s! O0 ~# }+ l: n9 A: d, W    11 -  压缩的,黑白图像
; T- V$ I" [2 z4 f2 b    32 -  使用 huffman,delta 和 runlength 编码的颜色表图像( t0 T5 F8 E8 x' k" G0 G" H/ `
    33 -  使用 huffman,delta 和 runlength 编码的颜色映射图像,4 趟四叉树类型处理。
2 f6 h1 b  m+ R/ o8 V5 `    本文仅仅描述对应 1,2,9 和 10 的文件格式。; v" J" Y% N8 P$ M3 h# i
. C" _( H: ~1 ?3 j
--------------------------------------------------------------------------------) h. U/ G2 r7 o$ e" Q8 t
|数据类型 1: 颜色表(color-mapped)图像
% U" v/ W( m" N# D( L- a$ ]6 i2 G|--------|--------|------------------------------------------------------------' N/ x1 M+ Y: ~6 V0 }2 {- E) Z2 A
|  偏移  |  长度  |                            描述: y3 A9 y3 G4 ?! ]
|--------|--------|------------------------------------------------------------& |+ }, n5 u& Y" \' h: F# m
|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               
' r+ F  t' t% f|        |        |                                                            
1 ?$ u$ w6 A/ p9 X|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     * z0 H) f& j7 b
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     
; M+ o0 V- x& e# z' P% d|        |        |  信息字段。                                   & o5 U. L2 D' }3 n
|        |        |                                         * Q. V" e7 V7 j1 \: m
|        |        |                                                            - O9 l9 P+ {- ?4 z
|--------|--------|------------------------------------------------------------1 f' ?+ C9 ~3 Z0 ]5 p* W+ S0 E. ?
|    1   |     1  |  颜色表的类型                                           6 D4 }5 Z) D+ J3 i/ y
|        |        |                                                            0 V8 m- N9 b, z6 x* B7 J
|        |        |  该字段为表示对应格式 1 的图像而包含一个二进制 1           . n7 Z" }" ]0 M
|        |        |                                                            
/ o! Q) j# q% d5 t' H5 p0 X& q|--------|--------|------------------------------------------------------------/ ^8 q! g  E0 [% F+ g" ]! h
|    2   |     1  |  图像类型码                                            
& e8 j( X% f) x8 M|        |        |                                                            5 a1 t1 |2 u4 j) i1 E
|        |        |  该字段总为 1 , 这也是此类型为格式 1 的原因               
$ B0 X0 ~" {' }|        |        |                                                            
! R4 z/ u. ~' l' c|--------|--------|------------------------------------------------------------
9 L& C  A+ r' ^|    3   |     5  |  颜色表规格                                       
& N, u/ V" e! t" d, Z|        |        |                                            ! N: ]% P  [) O% c
|    3   |     2  |  颜色表首址                                                
1 D* B" s1 v6 E3 {|        |        |  颜色表首元表项的整型(低位-高位)索引                5 s2 S- w7 t+ C0 l2 F
|        |        |                                                            5 Z( d) f4 T5 M& N* b3 \
|    5   |     2  |  颜色表的长度                                          & @; ~- R* j0 H3 N* s- H
|        |        |  颜色表的表项总数,整型(低位-高位)                  
( o8 C1 a+ v: k6 F- K2 }- A+ J: X: m|        |        |                                                            % N  c5 i7 R$ B
|    7   |     1  |  颜色表表项的位(bit)数                                   9 E4 L( W5 N2 O, C4 l( }8 @8 B5 u
|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA
4 }; }, \7 J. s% s& g1 h" f" D|        |        |                                     % |) V$ E4 |/ q/ W& S
|        |        |                                                            ! o6 D7 x' c, T) d1 m. V3 B
|--------|--------|------------------------------------------------------------
& x# y, P; q" C$ |$ B% d|    8   |    10  |  图像规格                                               
7 [- Y+ u7 ?1 P, ]5 A  I% [|        |        |                                                            # @# D5 [8 m0 e/ k) ]& P4 y3 d* `
|    8   |     2  |  图像 x 坐标起始位置                                       
3 f& g2 D# y" u" K  j5 W|        |        |  图像左下角 x 坐标的整型(低位-高位)值               - J, s) E( T, ^+ H
|        |        |                                                         
) A' H+ l2 q+ I2 k0 x) w: \" P- h% C|        |        |                                                            " w0 @, h$ P# k( P
|   10   |     2  |  图像 y 坐标起始位置                                       / M6 T, R( T4 i" X, J$ x$ U6 ?
|        |        |  图像左下角 y 坐标的整型(低位-高位)值               
- U! x4 a( p# r$ [' H' a7 M& K|        |        |                                                         
8 c: A7 J. l, `( Q- |8 y|        |        |                                                            % C0 z& Q) M4 h- S. r
|   12   |     2  |  图像宽度                                                   4 V2 |7 [# n) l- I0 G# H
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           
: |+ I8 b3 s0 B" m6 i, w6 A|        |        |                                                            2 I# _: y& E7 r1 h5 F4 I! [: h
|   14   |     2  |  图像高度                                                   
3 m6 d2 x& v! z) C|        |        |  以像素为单位,图像高度的整型(低位-高位)值               
- F# ~6 w1 b  V: Y|        |        |                                                            2 ^5 D% B5 c* A8 u' m- H- u
|   16   |     1  |  图像每像素存储占用位(bit)数                             
8 s& i  _7 L# Z( |6 n! T: L1 L|        |        |                                             
3 `1 W0 M* j' ?|        |        |                                                            
& L8 b( o) u: Q|   17   |     1  |  图像描述符字节                                          
' f8 q" }6 L' C* G; ~|        |        |  bits 3-0 - 每像素的属性位(bit)数                  
: t9 G% l; t+ ?& r8 N2 P" B  W  N9 `|        |        |                                                        
2 V- q$ [  k( K5 n; m5 T|        |        |  bit 4    - 保留,必须为 0                               1 Y6 q; h% V& c& _$ s
|        |        |  bit 5    - 屏幕起始位置标志                           
6 W- H( ~4 M; R1 b+ k. T: K, u|        |        |             0 = 原点在左下角                       # x- D  f1 {; _7 B" S" M: [3 v
|        |        |             1 = 原点在左上角                         6 i0 l+ W/ H% z. ~& s0 d
|        |        |             truevision 图像必须为 0                         ) T% c5 R1 S$ }0 Z8 e) C: p
|        |        |  bits 7-6 - 交叉数据存储标志                       ) W  R7 }: A- i* K! \. Y
|        |        |             00 = 无交叉                                   1 \' S5 r  x, Y, }3 J. C0 m$ ~& B
|        |        |             01 = 两路奇/偶交叉                        7 `# `6 M4 T1 N9 y# _
|        |        |             10 = 四路交叉                               + o: R, b& O0 d$ O! G' e: H
|        |        |             11 = 保留                                   : @& p  ?& h$ q9 b: H& ^
|        |        |  这一项应该设为 0,不要问我为什么                  
- N3 o5 E% R; f( P9 `|        |        |                                                            
0 S( p, K9 ~  K; b; h' l- v|--------|--------|------------------------------------------------------------& {( [7 z7 M3 J; V9 v4 E6 g/ F7 L
|   18   |  可变  |  图像信息字段                                       + L) u* V, k- w: d$ T
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   
/ L; l; a) s) f* G% \( n- z9 X|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
$ D1 e1 j1 z* j|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   3 Z" d% K; g  l  t) \( B
|        |        |  之后                              
& F# u; W. b; J8 U|        |        |                                    
7 }2 ?8 X  s, i' Q2 _* e|        |        |                                                            : [* z& S. H$ k* @$ g7 |; S9 f, N, L: [* m
|--------|--------|------------------------------------------------------------
$ l8 s1 t4 {) X; D: e8 J3 L( {|  可变  |  可变  |  颜色表数据                                                ' F# G6 {+ k& \2 N' \' f
|        |        |                                                            # y8 Q2 b, b4 C$ o% B
|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小        t* w9 k; S; e6 t, a
|        |        |  和数据项数目决定(在前面相应的说明字段中给出)            2 N* E5 d$ W5 m! i+ `4 b
|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit)
, B2 \4 X5 E$ E|        |        |  被认为是属性位。                           
1 p1 |  b/ W/ J|        |        |                                                            & B3 O2 ^  O9 @9 @  p
|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,
* n! O1 w+ h; K% y1 G8 ||        |        |              字节 3 表示 RED,字节 4 表示属性           8 {# R2 s6 R- ~5 y% q0 h7 P, j# k
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               0 y1 v$ ^: C3 g* j& }+ A
|        |        |                                                            . g" n' _6 Y' |% A. Y/ b3 t- Y6 G4 \
|        |        |  2 字节表项中,两个字节分解成如下形式:               
- [! W! h, m7 H. L0 S% k/ f) k5 N|        |        |  arrrrrgg gggbbbbb                           
' g4 z" M+ _) c|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
5 I# P, ]1 O/ ^. w6 }  G% {( P|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。  ; r; o  V0 ^( n/ d) t) D- _
|        |        |                                                            
9 @/ A; N8 a% T! [4 {$ d+ @|--------|--------|------------------------------------------------------------
' j3 f) b' \/ B3 ~9 D3 q|  可变  |  可变  |  图像数据字段                           $ c( w9 {' I5 _! k; g- |2 f$ X2 c1 L, m
|        |        |                                                            & |% A6 H2 x8 }
|        |        |  该字段给出了 (高度)x(宽度)个颜色表项索引,每个索引    4 j' n" i4 D* L& ^9 b; A. ?& g
|        |        |  以整数个字节的形式存储(典型的例子如 1 或 2 个字节)        t, c. m6 D) c
|        |        |  所有的数据都没有符号,对于 2-字节表项而言,低位字节是     - i0 k6 S7 C9 \: s/ O
|        |        |  先存储的。                               $ K7 [1 F2 T$ x1 _' x9 Q
|        |        |                                                            2 G5 v- x, ^5 V; P1 J
-------------------------------------------------------------------------------
5 L! Q, k3 x; Z7 c
$ E( v2 I4 l( u" T
4 Z& S3 p3 c5 [' J, C. r/ F, F# o9 z! Z+ @1 n
--------------------------------------------------------------------------------
" u' ^, u8 f* `- v5 s+ \2 ~2 E( W|数据类型 2: 无颜色表 rgb 图像                                  2 ]. I: c) Y& Q$ }( t
|--------|--------|------------------------------------------------------------
4 X0 p7 a* E$ u- b|   偏移 |   长度 |                         描述                              & X+ p; d1 D; Z
|--------|--------|----------------------------------------------------------
, j1 d5 R5 @/ t* d4 s6 }|    0   |     1  |  图像信息字段( 见本子表的后面 )的字符数
2 N' ]' P& E" A|        |        |                                          ) f( J0 o8 ^0 v2 D4 {
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度8 F  M5 k- I* E+ Q
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的
, q+ j* x: P) A( i|        |        |  信息字段。5 {5 M" j' s' ]0 d
|        |        |: A$ m7 Z* f! C, Q
|--------|--------|------------------------------------------------------------
. S% _8 A% f3 G& K|    1   |     1  |  颜色表类型* {. O, ]0 M- D+ A% m
|        |        |                                                
+ g1 e% t7 Q# w0 h% r* H1 l|        |        |  该字段的内容或者为 0 或者为 1;0 表示没有颜色表,1 表示
- q+ g1 o" k* K7 b9 m" i4 T|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。4 }' U, ~3 P0 P0 |2 }! N" n
|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射
  s2 Q) @1 e. z0 e|        |        |        中的第一种颜色( X& I. x! K. Z$ Y8 _$ }5 |" D( g
|        |        |
6 S4 X6 D9 ~3 q. s7 V% w8 J- V|--------|--------|------------------------------------------------------------
/ s% r8 Q7 j9 e& k/ m% ]' p, F: t|    2   |     1  |  图像类型码
) |- t. V& |: e! n5 T6 G: s|        |        |                                                     
+ n+ _/ N6 B/ y; J! {$ u|        |        |  该字段总为 2 , 这也是此类型为格式 2 的原因   
* \5 j8 H% s) e: O; n|        |        |  + \, d, x% {1 M1 |, C' R
|--------|--------|------------------------------------------------------------  z. l5 X, w5 q7 |( _& {
|    3   |     5  |  颜色表规格3 r2 M; e/ w9 d  e# m( _
|        |        |                                                         / a  O# ?: V$ k1 I) U$ H1 W" q. K
|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下. b. c4 Z$ H7 f
|        |        |  
1 q7 ~# a7 P6 Q' \|    3   |     2  |  颜色表首址
, l2 K3 s% }$ k% c" ]|        |        |  颜色表首元入口的整型(低位-高位)索引: m+ d* Y6 r- P7 W
|        |        |                  + q$ Q# @3 L" v# E, i* L
|    5   |     2  |  颜色表的长度
5 P8 }6 ~0 y5 [' r|        |        |  颜色表的表项总数,整型(低位-高位)     # u5 I2 G7 j/ i# _- E
|        |        |                                   
% G" E+ p" B6 i# q5 W|    7   |     1  |  颜色表表项的位(bit)数& \4 F# {/ l& P
|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA6 I* C4 x" Z6 K+ ^& l
|        |        |  , V4 c, C2 b; L0 r1 |# C" q7 E
|        |        |                                                           3 f4 z3 R) a% H+ g6 c/ v' m* R
|--------|--------|------------------------------------------------------------
; T/ G2 Z! k( R3 ^0 k. A- K: [|    8   |    10  |  图像规格
' {+ }4 L! n9 e|        |        |                             # h: O6 B- ~0 Q8 c
|    8   |     2  |  图像 x 坐标起始位置      
+ n, W% C0 Q- |# _1 w: N0 b$ l) M! \|        |        |  图像左下角 x 坐标的整型(低位-高位)值
, u' F! G8 x  _! Z6 q|        |        |  
+ y; B! b& I5 L& u9 ]% ~|        |        |* f7 y. }7 U8 J( f, x8 Z9 G
|   10   |     2  |  图像 y 坐标起始位置4 Z/ A7 q# h3 U5 c  J) A2 J& c
|        |        |  图像左下角 y 坐标的整型(低位-高位)值# G- A3 d2 i% u( T" I+ {) u
|        |        |  ) C8 n: _% N: g2 Q1 u/ ~
|        |        |
9 ?5 a9 ~7 g8 ?1 u1 _% O8 N|   12   |     2  |  图像宽度 . C  O: S$ v4 E/ |& Y
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值2 }- U7 D/ w9 l5 g* o1 F0 S
|        |        |
, w/ V" V. D/ ^5 c8 I" R$ v5 C|   14   |     2  |  图像高度
2 d9 `, L/ x3 }5 ]|        |        |  以像素为单位,图像高度的整型(低位-高位)值4 O" e1 M$ I, O- d' h6 F- b
|        |        |$ M$ V& J  D" t! t3 R1 i! n
|   16   |     1  |  图像每像素存储占用位(bit)数
4 r. [/ c& t; K+ H: x6 |/ Y2 a, m|        |        |  它的值为16,24 或 32 等等决定了该图像是 TGA 16,TGA24  r$ J0 I, Y- v9 b- d1 B
|        |        |  TGA 32 等等
( }& ]4 ~% N7 A' x; e9 D|        |        |
0 X/ F9 [1 U: f4 i& \, S|   17   |     1  |  图像描述符字节
# j! s) W9 F; N5 P% q3 D' P% D|        |        |  bits 3-0 - 每像素对应的属性位的位数;对于     TGA 16," D/ G2 F" o/ s2 s' N& Z' p) s' ?: @
|        |        |             该值为 0 或 1,对于 TGA 24,该值为 0,
/ C' ]" O7 f8 y# p! x! |3 l|        |        |             对于 TGA 32,该值为 8
0 c% P  K4 N% B. L, r|        |        |            
3 X* [( x* `- k, B8 a1 h7 H|        |        |  bit 4    - 保留,必须为 0
3 b8 e5 |5 W5 a|        |        |  bit 5    - 屏幕起始位置标志! s: Z0 x; }( N$ d) [+ k5 {& g, ?+ \
|        |        |             0 = 原点在左下角
. @0 q+ I2 r1 j. G, @|        |        |             1 = 原点在左上角
. r2 K* I3 \8 D9 E8 ^|        |        |             对于 truevision 图像必须为 05 i" e, r- @& _5 m8 B
|        |        |  bits 7-6 - 交叉数据存储标志7 Z- u+ Z! u. w& k5 Q# g% G
|        |        |             00 = 无交叉                                   & F& Q; @( S. Y: Y
|        |        |             01 = 两路奇/偶交叉                        8 U6 {" g3 j1 f' B+ n" U5 B) m2 f
|        |        |             10 = 四路交叉                              
, `# F0 Y7 U* V! T; p4 s- p) J|        |        |             11 = 保留
8 X( Z! F: y  h! J5 ?|        |        |                                                            
# f2 w( A7 ?5 R. V% T|--------|--------|------------------------------------------------------------
( g; w5 w( }# T* ~|   18   | 可变   |  图像信息字段                                       ( X& V/ N" B8 `. X8 B8 b
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   ' y( E! v& d( N" h
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以    : i) Q7 J- ~% S! W6 a) e) J4 r
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   " o1 }6 c1 |7 ]+ x" `+ R
|        |        |  之后                              
3 b4 W/ S. U6 ^1 E( R. f: @|        |        |                                                            
/ o- ?5 D9 G9 Q$ o|--------|--------|------------------------------------------------------------
( z/ s) \; G4 Y' n7 L- F% O|  可变  |  可变  |  颜色表数据                                                " o# o- t3 n$ Y4 J
|        |        |                                                
0 R: n: G- ~" U) l' Y% M9 D|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取* E  n7 L" P2 v: z+ M. g, U( }
|        |        |  图像颜色表规格中描述了每项的字节数,为 2,3,4 之一
6 s& D, Z5 ]2 N; v+ E7 r6 s8 r|        |        |  % O3 Q% n" R8 A9 {( ]
|        |        |  ( o# ~) M3 T8 S' f& S
|        |        |  + P8 j6 t! L4 X* K- R
|        |        |  
+ G4 T  @+ W* s/ d" W& F4 C8 i|--------|--------|------------------------------------------------------------7 E/ t7 z' Y1 N
|  可变  |  可变  |  图像数据域
  N5 f& u% D3 _% v, u|        |        |                                                    : N1 Y3 d+ U) X7 z/ z& N% e
|        |        |  这里存储了(宽度)x(高度)个像素,每个像素中的 rgb 色值
2 v, M# G$ C  J" m* J) z# g; d|        |        |  该色值包含整数个字节
6 w  H- C# O/ m7 s+ j; g5 N|        |        |  0 u: U7 j6 ?  V% O
|        |        |                                                           * r: C$ V' r3 T  l( F: m( q
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               : J5 Y5 M& Y+ m4 @; b4 T# d
|        |        |                                                              O4 I+ d  U2 a, H: O
|        |        |  2 字节表项中,两个字节分解成如下形式:               
5 S4 Q2 ?" g. A4 f& h' L* E* ?|        |        |  arrrrrgg gggbbbbb                           : j) q6 y  _- P
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
$ h9 b! [5 S) [' c. s) n|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位1 j3 [* g3 j$ e) f
|        |        |                                                          4 v# ?; n( F5 Y$ U) N/ F) j5 O
|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个
  i; u! }3 P! m  C; m/ \5 w|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象
$ q; ?' \. z' g/ d# x, N|        |        |  TGA 32 类型的图像那样存储
# w; O; d1 p* R" c|        |        |  2 N5 A+ S0 K7 U1 X& u6 @! e8 Q
|        |        |                                                         
) H/ w4 W3 M9 h2 B% X--------------------------------------------------------------------------------
0 T. `+ ^3 r5 o- k' a2 z8 Q" P
6 p( i, t1 H' t/ U5 J6 {) v' X8 G! H$ a  m5 S4 n$ ^% O8 V
! `5 ~; \5 x! Y' r5 b/ O# h
# K- b, f3 o" e
--------------------------------------------------------------------------------8 J! Z& o# G8 g* w' I/ L. s
|数据类型 9:  runlength 编码,带颜色表的图像
' K( W% T" j6 x$ `, r# w9 a|--------|--------|------------------------------------------------------------
3 Z0 ?* q8 Q1 g, s6 Z|  偏移  |  长度  |                            描述
! b' |( a5 T$ o0 l|--------|--------|------------------------------------------------------------
- j/ ?) L: S! R; y1 _. N|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               
% {- O0 Y( V1 F6 L; b|        |        |                                                              K3 N7 y4 O$ A! Z( K  R
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     
7 h) W+ x: Q! C* g/ O|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     3 F2 z, C# i6 `+ T$ d) h& R
|        |        |  信息字段。   
6 T* V9 v6 ~7 c' G( J$ M|        |        |                                                            
5 \$ A5 c% N) b* \7 D( N- ^" X|--------|--------|------------------------------------------------------------
/ z. o' f% h1 L  `# i- L; g+ J4 f|    1   |     1  |  颜色表的类型                                          
% i5 W  M0 j) u4 ^1 b. ?  P|        |        |                                                            0 @8 Y9 N$ v( [  y5 L2 @
|        |        |  该字段为表示对应带颜色表的图像而总为 1
$ {; f0 w. s+ s' r+ J# ^|        |        |                                                            4 q" A4 p1 b5 I: e8 B& }' }
|--------|--------|------------------------------------------------------------
$ {+ L6 s) H5 m- l% l7 O% A  s|    2   |     1  |  图像类型码
1 i& Z  Z) d' J: V|        |        |                                                            
, D: T( n3 o& F+ V+ ^9 v|        |        |  本类型该字段为二进制 9# o5 B6 r' x  @/ a' i" \  R
|        |        |                                                            
' P1 y& E+ U- J  `|--------|--------|------------------------------------------------------------
2 G4 ?" \! ^8 [+ g, H|    3   |     5  |  颜色表规格7 a0 {/ y. f- E& N7 S1 h
|        |        |                                                         
1 V$ s* d# j5 [6 ?6 g$ ]& e3 K|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下4 \$ V9 }. U: b  [" I* a0 c
|        |        |  
4 t, \& M6 {" K- j2 ?7 c|        |        |  2 H% c: ]/ T2 c; K* }9 U+ ^" d
|    3   |     2  |  颜色表首址
$ {% M2 N% E! C0 v! J|        |        |  颜色表首元入口的整型(低位-高位)索引
8 y4 Y% w/ P. M. d( D|        |        |                  
3 f2 }8 x8 y- x+ U! G|    5   |     2  |  颜色表的长度
+ w/ `* E. ]4 t. ~8 D- k|        |        |  颜色表的表项总数,整型(低位-高位)     1 R& i! X  H( B$ ^/ N( o
|        |        |                                   * W) n* T' v' R8 u% f
|    7   |     1  |  颜色表表项的位(bit)数
) U# K/ Q( a) G, Q3 g4 m|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA+ K1 e! _: U; E/ T5 H4 j9 [
|        |        |                                                           
8 e- r6 i  r; F8 q+ M/ e|--------|--------|------------------------------------------------------------- G& a3 {  E( w  B# s
|    8   |    10  |  图像规格                                               ' {% _) }$ L% b' d
|        |        |                                                            
6 }- Z  M' o7 t|    8   |     2  |  图像 x 坐标起始位置                                       
  ~% n! p  V% f4 V* v( A|        |        |  图像左下角 x 坐标的整型(低位-高位)值               
, ^8 z7 Z) j+ _9 L; o, R|        |        |                                                         3 ]6 h9 K) G$ m" }( F
|        |        |                                                            
& g$ D6 g6 I0 v& [& \6 s8 v0 x7 `|   10   |     2  |  图像 y 坐标起始位置                                       
# k8 p/ F2 a. |# m|        |        |  图像左下角 y 坐标的整型(低位-高位)值               
# B$ {. h+ B6 q6 |) R|        |        |                                                         ' C; K- n0 v/ V9 k7 J
|        |        |                                                            9 y+ G1 ]$ k* T# F4 y2 H2 l& h6 M
|   12   |     2  |  图像宽度                                                   8 g; A4 _: H/ o% [1 X
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           3 i. i( v& T$ u
|        |        |                                                            
6 q- ^# |! L! y# }+ L- t|   14   |     2  |  图像高度                                                   
( T$ f' k9 U" L& x( m( e|        |        |  以像素为单位,图像高度的整型(低位-高位)值               
: q6 d# \7 O7 V' M! s4 Q: x3 {6 @|        |        |                                                            
) D8 W7 t4 F0 ?& J|   16   |     1  |  图像每像素存储占用位(bit)数                             . s- t. k& Y3 o2 t
|        |        |                                             
! g7 `5 g! K; Q, ||        |        |                                                            : j- y& p: q1 M# G
|   17   |     1  |  图像描述符字节                                           ( s7 t+ C( e$ p/ I0 ^; T# C9 Y& e: \
|        |        |  bits 3-0 - 每像素的属性位(bit)数                   & G1 X6 ~5 o+ s& v& W
|        |        |                                                        7 `! o0 Z. I/ ?8 j
|        |        |  bit 4    - 保留,必须为 0                              
) T* Z# I- |+ Q3 i|        |        |  bit 5    - 屏幕起始位置标志                           
8 M- T, c" y. O|        |        |             0 = 原点在左下角                       9 F# U3 H) R$ h: I0 e% R
|        |        |             1 = 原点在左上角                        
9 \5 h/ d& C/ P* G6 l|        |        |             truevision 图像必须为 0                         8 [- v3 c( s- i4 Y& R9 M5 K
|        |        |  bits 7-6 - 交叉数据存储标志                       
3 C- \  p& }$ X& y|        |        |             00 = 无交叉                                   7 ~- _, d' `0 M/ `0 V1 I/ z
|        |        |             01 = 两路奇/偶交叉                        % [$ h, w$ ?& `% R* Q1 @6 b( w
|        |        |             10 = 四路交叉                              
: `/ H7 q! o$ `- z|        |        |             11 = 保留
. ^: l, v2 s8 v9 V|        |        |                                                            
9 A( D- o  t8 Z; A" z|--------|--------|------------------------------------------------------------
. B2 C. K$ n1 @' H|   18   | 可变   |  图像信息字段                                       : _% c2 a' S# j* f& c- d
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   
$ g. R. ^% `$ j2 V8 J! x% K( U) d|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
0 Z2 Y1 F# i4 ^) D|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   
( Z- p' Z5 `, w: Z|        |        |  之后3 ]" U7 B$ i. ?! }4 t. q' v
|        |        |                                                         
4 p; u8 L* J; t5 {. C. f8 i|--------|--------|------------------------------------------------------------6 q$ R% Y- P4 X$ N
|  可变  |  可变  |  颜色表数据                                                
8 r! _3 E6 C, c|        |        |                                                            
5 @( O( r- J' y|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小      ; d9 s. u& s: o( S
|        |        |  和数据项数目决定(在前面相应的说明字段中给出)            - ^; J! _2 k4 g' o5 e2 O& L. m
|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit)
, e% K# e% p+ T7 z; {7 x$ b|        |        |  被认为是属性位。                           
6 A4 @2 A0 I5 @6 f6 E$ s|        |        |                                                            
$ T5 B6 O3 F" J. ?% p# ?# R|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,
. M/ t, W& B% Y" f  i# k|        |        |              字节 3 表示 RED,字节 4 表示属性           
$ Y0 W/ _* n. G* ^6 p6 N: l|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               % J( c. [( r. S- r
|        |        |                                                            ! n4 ^2 Q# X' @0 s8 w
|        |        |  2 字节表项中,两个字节分解成如下形式:               
9 m% q) F  J, W/ R|        |        |  arrrrrgg gggbbbbb                           ( b$ ~2 B3 @% L+ |% |$ @
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  / j' o. X3 o, k3 C
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。$ n. E6 z3 w% W- u6 s/ H
|        |        |                                                            
+ }- h6 s5 N% q6 D! a" w1 ]& G|--------|--------|------------------------------------------------------------
8 O5 F$ N- v( x6 @' j; {/ g9 @( I| 可变   |  可变  |  图像数据域
* ~$ _- M8 T9 j  E9 p|        |        |                                                            # V' b3 {& N% `8 \3 d
|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放
4 K4 B  X5 ]4 M|        |        |  在数据包中;有两中类型的数据包:run-length 数据包,6 u2 P- R/ D" d' |- i
|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,
7 }7 B7 W$ Z. t; W4 @5 k6 l|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域
" q0 p0 Q9 V" L! ?! L|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当
/ x5 j; _1 {1 u1 [|        |        |  它为 0 时,表示未加工的数据包/ S; n+ u: F2 G( h$ e5 y9 V: h
|        |        |                                                            ; A, N  W- R* D
|        |        |  对于 run-length 数据包,头信息含义如下
# w. i" N* K: K6 g|        |        |      __________________________________________________   
6 i1 {8 U4 c& K' U|        |        |      | 1 bit |   7 位的重复记数减一1 M4 z  ?  k" O) U8 h2 W9 P0 l
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |8 F8 X  r. Q# K
|        |        |      |       |   的运行大小为 128,(译注:原文为     |5 F+ w) v3 e& m- E) [) @6 n4 T+ z
|        |        |      |       |   the largest run size)          |  . P" m2 U, U& v. y
|        |        |      |-------|----------------------------------------|
: Q. v4 Z; c+ a|        |        |      |   1   |  c     c     c     c     c     c    c  |) C: q' }" c3 S+ H- l4 y
|        |        |      --------------------------------------------------  H; H; v4 C4 T, h- ?
|        |        |                                                        1 l: [4 Y* ~. Q& [% T
|        |        |  对于未加工数据包,头信息的含义如下
8 G# C4 b+ D& p# x8 M|        |        |      __________________________________________________0 z$ }  k+ R" I9 ]4 p
|        |        |      | 1 bit |   7 位的像素个数减一                   |
! {$ V" T( x4 `1 Z) p: z. N, @|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |
3 [0 ~- t' _+ b8 v8 h+ @8 T|        |        |      |       |   类型的一个数据包中像素个数不能大于   |) d, |  i+ j9 r8 a; ^
|        |        |      |       |   128                                  |+ G7 F! U3 ]" i$ N6 M
|        |        |      |-------|----------------------------------------|: I4 J2 t% T- X, _0 e8 N( Q+ z* x
|        |        |      |   0   |  n     n     n     n     n     n    n  |8 A1 Q* W$ I4 u
|        |        |      --------------------------------------------------
+ i( U; D5 ~+ u: v/ ?, A|        |        |                                                        
9 ^2 l, I9 E  K( `- e|        |        |  对于 run-length 数据包而言,头信息之后是一个简单的
. [# z+ D% f* V: D! ^5 R3 q|        |        |  颜色索引,且假定该索引被重复头信息中低 7 位表示的次数
7 e3 u$ ^8 X- \9 w4 L8 {|        |        |  run-length 数据包也许会跨越扫描线
8 ^* a$ V  d% Y; H1 U- A  v9 _) P|        |        |  (扫描线起始于某行结束于下一行), B# K0 J- I2 `7 I4 t0 }
|        |        |                                                        # p( ]$ P1 M. e8 Y7 x
|        |        |  对于未加工的数据包,头信息之后是颜色索引(数值由头信息
7 b! x2 d- K$ O$ `|        |        |  给出)该类型的数据包也可能跨越扫描线
0 y* f' [1 S7 D' x|        |        |                                                            
) ?2 z& j7 ~3 @4 A. ?3 i--------------------------------------------------------------------------------
" y! X+ _* H9 Q; s& r
/ }% K/ v9 D$ M2 p6 w( ?6 a2 P* R$ A3 X3 ?& W  Z" m" m) E

5 V% ^! |1 i* K% `& o1 v# B' D+ |& H. h2 W* Q
--------------------------------------------------------------------------------
/ Q0 T3 S) X7 v+ g* C* w& q|数据类型 10:run length 编码,rgb 图像- p$ p7 \- S, S7 F4 v
|--------|--------|------------------------------------------------------------
7 \% z5 N8 U: o, z|   偏移 |   长度 |                         描述                              , x# Y2 |- i  ?! y+ `
|--------|--------|------------------------------------------------------------
8 u  M' Z. X' R! X4 b& _% b! g|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               ' C: q4 W8 m6 b' H& Y
|        |        |                                                            % W1 {9 `& }8 l- q
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     
& r# `2 j, o! i3 b|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     
6 k- ]: A, C% F0 F5 Y$ Y|        |        |  信息字段。   
1 n3 k, v% a+ t. m5 X|        |        |                                                            * u" k5 y1 y* T9 A4 x& n# c
|--------|--------|------------------------------------------------------------
. p; K. Z8 n  q- Z9 d|    1   |     1  |  该字段的内容或者为 0 或者为 1;0 表示没有颜色表,1 表示
' @/ P2 |( i4 P7 ?6 X|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。# J6 ^3 \8 a0 Y! j( R) c/ J- k/ J
|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射  z. E& R! ?2 ~0 D0 u! V
|        |        |        中的第一种颜色9 O; V- ]4 `& |: L9 h8 y  {
|        |        |                                                            
' |+ `2 N# p6 m0 V+ N|--------|--------|------------------------------------------------------------3 w% e" A& G: V
|    2   |     1  |  图像类型代码
! z* u2 h# P3 L2 E, D& ]0 ~|        |        |         
$ u; I# {  L; G|        |        |  本类型该字段为二进制 10
( W; ]3 q+ E8 g. ]+ t|        |        |                        
" F% g1 g3 y+ w. Y. h9 u0 {|--------|--------|------------------------------------------------------------  h- ~1 v) i# q0 m6 h$ [6 J& D
|    3   |     5  |  颜色表规格6 ^2 J- t- [& Z: }) O
|        |        |                                                         * h% Y! |5 M6 t. I( m8 F: ]
|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下  i8 m/ F4 I  i' L5 s
|        |        |  
1 t+ n5 N- R3 |0 ~5 q|        |        |  8 f  M, C+ ^' q, ^/ c1 K1 C/ B
|    3   |     2  |  颜色表首址
7 [9 X  o3 H' g! a7 v% z|        |        |  颜色表首元入口的整型(低位-高位)索引
8 R7 ?$ y+ V  X* h$ y|        |        |                  
: F5 j$ f; N6 }& F" R0 Q|    5   |     2  |  颜色表的长度; e2 c7 Q; B8 L% A. h
|        |        |  颜色表的表项总数,整型(低位-高位)     , Y- M# F; G( c
|        |        |                                   
/ I# Z$ n8 Z" U8 A; _& E; Q|    7   |     1  |  颜色表表项的位(bit)数
8 G4 U" }6 g$ l) t|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA! p4 i8 d+ Q  m0 h6 Y. t4 g
|        |        |                                                            - ?1 v9 y; K& l
|--------|--------|------------------------------------------------------------
0 _0 a4 ~" W4 [. n- S- w  d4 O|    8   |    10  |  图像规格                                               , R3 ]% ^. x& Q0 j) f
|        |        |                                                            2 Y7 o; X0 k/ ^: X
|    8   |     2  |  图像 x 坐标起始位置                                       8 m! P( G: h: |  |1 r
|        |        |  图像左下角 x 坐标的整型(低位-高位)值               
+ |, x+ `$ J* l0 S: `" z|        |        |                                                         
  M* ?) v" n6 N; c, y% h8 h|        |        |                                                            + f: S& ]1 }( F% V" J/ E: d
|   10   |     2  |  图像 y 坐标起始位置                                       
1 y2 Z7 h+ N! b|        |        |  图像左下角 y 坐标的整型(低位-高位)值               8 S+ F5 |$ S( m  v" u. g+ M% h
|        |        |                                                         
5 F$ m& A2 |( s' u+ f|        |        |                                                            8 b! m- {) l/ D1 n
|   12   |     2  |  图像宽度                                                   ) h* m& _8 x: G/ G& `* r3 h
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           2 \$ Z7 u% Z+ H, V+ Q- n- h
|        |        |                                                            + z5 w6 N" C( ^& {
|   14   |     2  |  图像高度                                                   
5 T* b5 a0 z$ }0 T" Z|        |        |  以像素为单位,图像高度的整型(低位-高位)值               
& d" k  m0 Z- \  J9 f|        |        |                                                            ( B5 x: A+ Y. N6 A# W
|   16   |     1  |  图像每像素存储占用位(bit)数                             / y2 V# i( h+ {" T) p2 L6 S% }' v3 F
|        |        |                                             
2 ~) A6 u% X7 J( j|        |        |                                                            2 L. q# r' b* s; z1 V$ v
|   17   |     1  |  图像描述符字节                                           - n: x! S: O- H' h
|        |        |  bits 3-0 - 每像素的属性位(bit)数                  
# X$ s% e5 ?# r8 `|        |        |                                                        3 a& a# l% x3 h1 w2 f+ Q6 ~
|        |        |  bit 4    - 保留,必须为 0                              
$ s2 s" j' Y2 V$ w" p) j  Z( J|        |        |  bit 5    - 屏幕起始位置标志                           
! Z% O/ n2 M2 ^% J7 W' l4 F1 \|        |        |             0 = 原点在左下角                       # ?( l1 E$ W) Z. r5 ?8 Q
|        |        |             1 = 原点在左上角                        
$ J/ Y$ \9 m8 a|        |        |             truevision 图像必须为 0                         : Y& _6 T' u$ k
|        |        |  bits 7-6 - 交叉数据存储标志                       % J$ K& ?. n9 P. H, N6 Z4 p
|        |        |             00 = 无交叉                                   ! D3 ^; j2 N+ B2 q9 P& [
|        |        |             01 = 两路奇/偶交叉                          m5 v! c& S+ b. b" l' A, ~
|        |        |             10 = 四路交叉                               9 C8 R* o2 ?4 z2 n" h
|        |        |             11 = 保留                                   
; |' T2 K; _  R$ N' L- K|        |        |                                                            
7 {9 U: d: k: e6 r, ~2 I% t|--------|--------|------------------------------------------------------------- a8 D  w9 u. @, V
|   18   | 可变   |  图像信息字段                                       % L$ M7 b, a+ a" g5 _
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   
. `- {6 O9 s/ `' o|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
# ^0 ]/ b0 V" H, @8 X2 x8 |8 j|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   
6 |" J! U/ R" Q+ ^. V7 d|        |        |  之后- `$ i+ u$ g& t
|        |        |                                                            
$ X( {& B" A' r- N2 F3 d5 ?3 N3 `- B|--------|--------|------------------------------------------------------------8 i$ ^) S  e" F( p
|  可变  |  可变  |  颜色表数据                                                * [& g# i% C# C4 u% \' W/ w; C
|        |        |                                                  A; J7 o( R! {$ U+ o- i
|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取( c0 w8 \4 L9 [; {, t4 [
|        |        |  图像颜色表规格中描述了每项的字节数,为 2,3,4 之一
1 R! p3 b/ ~/ U/ _* r1 c( R|        |        |                                                            # d; {2 K6 D4 L- G. o
|--------|--------|------------------------------------------------------------* ?/ m3 r8 {% |: j) M$ X
| 可变   |  可变  |  图像数据域2 Q- f: B$ q  r3 S
|        |        |                                                            
7 l) |3 a1 k1 V& t# M. f9 ^4 x|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放. h* a& h! e. C) I7 \5 e; g" ^8 E4 P
|        |        |  在数据包中;有两中类型的数据包:run-length 数据包,
, m5 U3 Z; S+ Y: }2 V|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,
) a5 J, @- r# f: y3 m|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域5 G& X3 k4 g5 }- v% F
|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当
# O+ [! C3 J% ]- Y: X; f|        |        |  它为 0 时,表示未加工的数据包
) i0 |1 X; J6 p( N|        |        |                                                           
/ T- A6 B' _# k" y|        |        |  对于 run-length 数据包,头信息含义如下
; J' I7 }) o, v$ N|        |        |      __________________________________________________    - B5 l( F3 E, _2 S) M
|        |        |      | 1 bit |   7 位的重复记数减一' e  `3 `. w. B5 N) u; [
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |: S7 |: P7 `; Y$ s; b
|        |        |      |       |   的运行大小为 128,(译注:原文为     |) n9 M% n6 N+ d5 p. N
|        |        |      |       |   the largest run size)          |  
) E7 Y8 H; v3 n|        |        |      |-------|----------------------------------------|
$ q9 r7 W: t9 b( X9 ?, S' E! `|        |        |      |   1   |  c     c     c     c     c     c    c  |
$ ?* u; f. O  ^2 K$ t|        |        |      --------------------------------------------------5 b  F8 l6 ?* t/ U  b- a9 [
|        |        |                                                        
2 v. ~- h% `* o! }8 K|        |        |  对于未加工数据包,头信息的含义如下
' \- N0 ~) F8 S2 M|        |        |      __________________________________________________
9 |4 ], w5 X* M- c+ P|        |        |      | 1 bit |   7 位的像素个数减一                   |/ [! L. U9 r" ^. r0 f0 e, F) y
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |, e$ F  \8 A& Q
|        |        |      |       |   类型的一个数据包中像素个数不能大于   |
; X; {" [8 R/ D) A|        |        |      |       |   128                                  |! H$ F, H! `$ }+ _
|        |        |      |-------|----------------------------------------|
1 o( ?3 ]/ p* H8 r8 i7 t  W2 |" G# B|        |        |      |   0   |  n     n     n     n     n     n    n  |; e# P7 ^1 w5 H: z! v  m
|        |        |      --------------------------------------------------- P4 G* Q0 z" U" P' F$ p, H
|        |        |                                                            & s0 X: F, M  g+ Z
|        |        |                                                            + B+ W, {% W( b1 @: ?3 t7 J
|        |        |  对于 run length 数据包,头信息之后是一个简单颜色值,
4 }  i" y; j5 @1 A$ I  \|        |        |  且假定该值重复的次数为头信息中记录的数: ?$ z9 S- A" M3 q5 d- V
|        |        |  run-length 数据包也许会跨越扫描线
9 @6 m/ d! x2 h% l|        |        |  (扫描线起始于某行结束于下一行)/ Q9 G0 W# h+ p- p; K8 h
|        |        |                                                      
  M9 h- h* C9 @|        |        |  对于未加工数据包,头信息之后是颜色值(数目由头信息指出)
: P6 k# u3 b! n& L4 v|        |        |  4 ]8 ]9 e$ f+ v5 b* _5 ]/ \% _- J7 Q+ ?
|        |        |                                                
/ N9 M8 l+ K) j( g, Q|        |        |  颜色表项自身有 2-字节,3-字节或 4-字节几种大小(分别, r7 g- b8 L$ o: n4 x; t- t7 W0 Z9 I
|        |        |  对应 TGA 16,TGA 24 和 TGA 32)形式如下:
+ H: Y9 b5 D% V|        |        |  
& L2 F' r: C3 C$ Z! f# d, z2 A- ^, q( B|        |        |            
# X7 H. g; q: O. i& N|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               
3 C- O. G' `5 \: A) z4 m+ D|        |        |                                                            
, q5 }1 n8 Q& S9 I|        |        |  2 字节表项中,两个字节分解成如下形式:               . K: ~3 Z" r; Z6 s8 R9 D! N
|        |        |  arrrrrgg gggbbbbb                           
0 ?/ C& V( E0 p3 ]|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
: o: [. m1 X. z9 O' ^' [% w|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位
. C( F( s/ `7 U6 T. N) p' A|        |        |                                                          2 D1 i& c9 ~# m+ X* u" L
|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个
- n' [/ B4 I/ t  b|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象- \( D# l( Y$ c  W
|        |        |  TGA 32 类型的图像那样存储
6 p- }: O  x4 K  g|        |        |                                                            
- R1 Y' n" f4 E* S--------------------------------------------------------------------------------
- S4 _1 e3 q; u. G& M+ j
( i# E& U  s9 r<完>
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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