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

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

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

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

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

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

原文
. n* N1 s/ _6 E# C! Q1 S2 Khttp://dev.gameres.com/Program/Visual/Other/TGAFormat.htm6 P0 P. L: F$ j. U
  
6 M* L5 S. N- I9 o/ q0 W根据david mcduffe编写的TGA文件格式资料翻译而成
; M- u' U5 A# Z 
7 L* q1 n& |$ y- v4 G5 B) m1 p' ?; c本文档是为满足许多对 TGA 图像格式的了解需要而创建的。本文摘录自truevision 技术指南的附录 C,如果2 m9 K7 Q4 Y1 Z0 ~! ^
需要更进一步的信息,请致信以下地址:
/ F" e, k: [9 e+ i' r
* }1 J* {  l0 c$ |% z! D* W           at&t
  v. q6 T% A' T3 q/ n$ d2 N           electronic photography and imaging center4 Y. O) R0 r5 d1 H. S. g/ }  M
           2002 wellesley ave.8 Q" l. q! v3 u- S5 W/ J) ]/ X
           indianapolis, in 42619
9 F7 {+ E4 g, l$ O  \; l6 A本文档不求全面,但力求准确。如果你发现了任何拼写错误或内容错误,请告诉我,( david mcduffe, & A3 f2 f( ?# V* }: z1 Q. [8 b7 k* D# x
75530,2626 ),我将改正这些错误,谢谢。2 B. K" M( Z3 O0 _* Y) h
' v! M* @* \/ E2 Y+ t2 m& r
不全面的原因是 TGA 包含了超过六种图像文件格式,而其中的几种较为常用。 我选择了我现在使用的格式并0 ?& d2 B4 k' i* w7 E& r8 r
在本文中加以详解。 如果你需要本文中没有包含的格式说明,你可以与你的 truevision 代理商联系。0 a! b8 @8 y% r( U' u
对所有的 TGA 格式的文件而言,其第三字节(二进制整数)用来区别各种不同的 TGA 文件。下面列出了该字6 ]4 e7 N% d- U% r9 L; U
节表明的对应文件类型:
( W3 e4 w. X0 n9 I7 ]5 g. ~' c3 Q6 J% b+ e    0  -  文件中没有图像数据$ S: j! K" @/ f' D) x  J  k1 l
    1  -  未压缩的,颜色表图像
& N6 |7 X0 c0 G( F- y8 m% I* o% |    2  -  未压缩的,rgb 图像# @, v, R$ d. m( ~3 A9 {, d
    3  -  未压缩的,黑白图像
5 K% _, J& w6 F* B! E    9  -  runlength 编码的颜色表图像/ w; q3 L6 ^1 w6 n! z" }  u
    10 -  runlength 编码的 rgb 图像
4 b! G- J( {3 V8 N3 V    11 -  压缩的,黑白图像
- _" `% \; x/ e9 i' e    32 -  使用 huffman,delta 和 runlength 编码的颜色表图像4 @( D* M& S: @1 T/ k9 S
    33 -  使用 huffman,delta 和 runlength 编码的颜色映射图像,4 趟四叉树类型处理。
$ B7 x$ G% X& u" s+ ?$ t    本文仅仅描述对应 1,2,9 和 10 的文件格式。
% k' J- j* [( z$ I" z- P
! z% o' S& ?7 V--------------------------------------------------------------------------------
: L: X& W" x" M2 j& g- g1 a|数据类型 1: 颜色表(color-mapped)图像9 J+ B2 y6 e$ n
|--------|--------|------------------------------------------------------------
, l, {  O# H6 L4 a7 k|  偏移  |  长度  |                            描述
2 r  M7 }9 u4 Q: P# P|--------|--------|------------------------------------------------------------
# Z1 F+ j$ `: H% J( [" g0 h% }& L|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               
% H! g; i+ M" v4 b|        |        |                                                            3 K$ G! d# \* d; l( T
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     0 _: _" {1 I- g) l, u
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     ; d( v2 v3 j( W% @
|        |        |  信息字段。                                   4 i9 ?% n( }/ k& b* ?
|        |        |                                         
& k6 o9 G6 ?0 i8 D& ]3 E9 B|        |        |                                                            $ n/ h5 ^" f4 j2 K; o
|--------|--------|------------------------------------------------------------2 v7 _; C5 Z' T, [) ]- Q5 Z
|    1   |     1  |  颜色表的类型                                          
8 x: b  g3 J- M# t5 X3 g; Q|        |        |                                                            # ?# D7 [2 A, v; ]/ d# a8 p
|        |        |  该字段为表示对应格式 1 的图像而包含一个二进制 1           
7 _, Y/ b# t  y9 s|        |        |                                                            1 o* D7 {2 H1 E
|--------|--------|------------------------------------------------------------
4 u& }8 d  n4 w7 q|    2   |     1  |  图像类型码                                            1 h+ R- h' C8 L8 X
|        |        |                                                            
# v9 e8 }0 s" R$ a* l|        |        |  该字段总为 1 , 这也是此类型为格式 1 的原因               3 w+ B  A" m/ ], [" T) c
|        |        |                                                            4 W/ ?2 U% U) [2 X+ W9 N' x* ^- V
|--------|--------|------------------------------------------------------------
1 J* r. a- ~9 w: m0 ~& t|    3   |     5  |  颜色表规格                                       
: n6 z. f) A3 |0 q% n|        |        |                                            4 n/ ^7 w. W+ D: C" T: n
|    3   |     2  |  颜色表首址                                                & y4 f+ F8 v: ?3 [( P. A
|        |        |  颜色表首元表项的整型(低位-高位)索引               
4 s0 ~1 I' i: D|        |        |                                                            
" e+ u9 B) p& o0 v0 z( n) u|    5   |     2  |  颜色表的长度                                          7 I) `( s; s( Z: v  W8 z8 c; E
|        |        |  颜色表的表项总数,整型(低位-高位)                  
4 b  b8 B' b+ p8 J; |. Y|        |        |                                                            ' F+ O% {! M7 d" j
|    7   |     1  |  颜色表表项的位(bit)数                                   
' ^% g( `. u% i) F0 z8 c1 E|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA
" O, ~/ l2 V, E* l# E* x* X|        |        |                                     $ J, @1 ~4 z" O# P! r% M/ z
|        |        |                                                            6 b. A* V( e2 t' x' R! L- l
|--------|--------|------------------------------------------------------------9 @% z4 M4 i! S# M8 C, U
|    8   |    10  |  图像规格                                               ! _* Y# Y. n; h1 }
|        |        |                                                            , c3 d5 Q& r. s  g+ P) r1 j, Z
|    8   |     2  |  图像 x 坐标起始位置                                       
$ s% ?+ u" b7 n- }|        |        |  图像左下角 x 坐标的整型(低位-高位)值               
( y) J/ D$ X! _. i) i& F9 P|        |        |                                                         
, R( i0 Z# M( I( d2 C8 e|        |        |                                                            ; ?, z& z! U# c% v! m5 m
|   10   |     2  |  图像 y 坐标起始位置                                       9 W8 e* d8 P, i0 n: R6 F, H) H1 |: L# o
|        |        |  图像左下角 y 坐标的整型(低位-高位)值               - J5 d  h$ `) Z8 n5 v7 M6 _; W6 l
|        |        |                                                         & B) L- T, j8 r' u
|        |        |                                                            ( r! P- k3 M( X3 W3 C% ]4 e* d5 ]
|   12   |     2  |  图像宽度                                                   
- C  q3 }6 y4 o6 b" c|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           
) r, H. z1 d5 f; L3 _|        |        |                                                            
* G: h1 ~/ S; r( \7 l6 i|   14   |     2  |  图像高度                                                   ' a; ?5 X8 k& t, H0 g$ [) K/ t% C8 E
|        |        |  以像素为单位,图像高度的整型(低位-高位)值               . |( G1 Z! ~- @" A
|        |        |                                                            0 ^! t& r9 V4 d
|   16   |     1  |  图像每像素存储占用位(bit)数                             % g! g# B# U, t8 f! ~; l- _2 D
|        |        |                                             $ k5 `/ L! }! z+ |5 \% U
|        |        |                                                            
  b. w4 a/ \' l. T, A/ d9 w7 e|   17   |     1  |  图像描述符字节                                          
  A  a) k% q5 B6 v|        |        |  bits 3-0 - 每像素的属性位(bit)数                   ' u/ H$ u4 l4 P6 Y  V. I5 p+ ]# O
|        |        |                                                        3 ^6 a& r) q% ]" [' \
|        |        |  bit 4    - 保留,必须为 0                               8 C  `/ v0 x- q! G0 u" S' k
|        |        |  bit 5    - 屏幕起始位置标志                           
. _  b% u( p  c2 X|        |        |             0 = 原点在左下角                       ; q% K; L1 p4 Z. T# n* S
|        |        |             1 = 原点在左上角                         8 |- ]) }; m1 y8 y
|        |        |             truevision 图像必须为 0                         ( \/ h: E6 t) u
|        |        |  bits 7-6 - 交叉数据存储标志                         ]* ^- U6 n' k: q5 u' Y
|        |        |             00 = 无交叉                                   # a) V- T+ }: Z; g2 t
|        |        |             01 = 两路奇/偶交叉                        
/ n- E6 n* S/ n|        |        |             10 = 四路交叉                              
) w4 K) k" I9 p# X" X+ N) Z|        |        |             11 = 保留                                   
- _# c% d# f, C( l|        |        |  这一项应该设为 0,不要问我为什么                  
' g6 q+ j" z# e|        |        |                                                            4 c: A; T! |) c$ a
|--------|--------|------------------------------------------------------------, Z& k, _9 D0 ]& d1 d, l# W' S: f' r
|   18   |  可变  |  图像信息字段                                       9 M! e  ]6 `$ R  V% ?( q1 s
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   
* }0 K! v) T5 S/ a, V' @$ J|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
" {/ K' p3 M. w8 Z+ ?/ i! U" [|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   1 j( v, {; M7 n, }$ R9 p: m
|        |        |  之后                              
" P: c4 E6 y- C' t  j& d|        |        |                                    
( B4 i0 I2 d* a# G  Y: C|        |        |                                                            ( Q: s3 E- a, G' {" g' G1 T
|--------|--------|------------------------------------------------------------
. l" m8 l1 ]/ \2 \/ U8 C2 v|  可变  |  可变  |  颜色表数据                                                , r9 Q/ B! ^1 G7 ]2 W8 O' Z
|        |        |                                                            
& R4 Q2 y3 I$ ^5 w|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小      - h. D" ~$ O/ p3 a* d
|        |        |  和数据项数目决定(在前面相应的说明字段中给出)            
' G% Q3 B. Q$ ~8 u7 B0 `9 @9 S/ j|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit) 5 o, H& N: n+ T3 }
|        |        |  被认为是属性位。                             _# h6 Q* T+ n# y7 X* {) l# Y
|        |        |                                                            + `& P; e5 L6 j$ d5 Y% o3 g  l! l% u
|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,
5 N/ c7 h* Q- k|        |        |              字节 3 表示 RED,字节 4 表示属性           ( N$ e, j9 Z: @( {
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               
/ g% y, g1 T% w9 G: f2 q|        |        |                                                            
3 r6 z- t( ~* i0 [|        |        |  2 字节表项中,两个字节分解成如下形式:               
# B  h$ `$ N' N7 E|        |        |  arrrrrgg gggbbbbb                           
2 b! g" Q8 u) |) k# Y5 @% _* v/ X|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
. s; ^. p5 C: e|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。  
2 x. d5 i( n1 \6 R|        |        |                                                            ' Z4 l! ]7 e; y  B
|--------|--------|------------------------------------------------------------
# F. K' W" }' ]7 [6 [+ d8 o$ {9 O1 D|  可变  |  可变  |  图像数据字段                           
( I& q8 f1 T4 G8 a|        |        |                                                            
1 \" u  ]  O- @* |9 u, w9 a  z|        |        |  该字段给出了 (高度)x(宽度)个颜色表项索引,每个索引   
1 l$ [2 H- A) h( V2 {|        |        |  以整数个字节的形式存储(典型的例子如 1 或 2 个字节)      5 b, Z- K: V7 P3 D/ p$ x! d- \% e& W
|        |        |  所有的数据都没有符号,对于 2-字节表项而言,低位字节是     
/ |8 Y+ [, k" L: l|        |        |  先存储的。                               ) v7 L& R& D; p" C* n
|        |        |                                                            7 b+ f/ d4 _' b, w5 a% b5 i7 l, q
-------------------------------------------------------------------------------, u8 P/ q; }3 F
+ e* o# j0 _) B; Y; L
2 A9 c% s6 n" Q. z8 l$ {

6 ?( Z/ Q8 A# t# e  j! X$ i--------------------------------------------------------------------------------
6 }* Q: ]  U# N1 o. I& V|数据类型 2: 无颜色表 rgb 图像                                  3 f- O4 @5 k6 o) n/ e3 \8 n! R1 _3 r
|--------|--------|------------------------------------------------------------
8 ]: t" y8 O8 X4 m1 w. p4 y|   偏移 |   长度 |                         描述                              
: o% {) _+ h$ \' L  }  B/ @- n6 x# p|--------|--------|----------------------------------------------------------
% ?0 `5 g- V, n$ X|    0   |     1  |  图像信息字段( 见本子表的后面 )的字符数" @, V6 i5 O- v; u! Q
|        |        |                                          
) d3 X: p! @/ l! J8 {# ^: ]7 l3 V|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度/ z& V/ U% F  s6 `$ e6 o
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的/ y, d% d- e8 G  [9 f
|        |        |  信息字段。
( n: j, k  W+ d; j2 D* c. V  s|        |        |) f' C  R! W* |4 V, q
|--------|--------|------------------------------------------------------------# S  M! c3 U/ u: F
|    1   |     1  |  颜色表类型: F; [/ D# M) f
|        |        |                                                 5 E& K5 M+ E% V- u9 M  L5 i8 d
|        |        |  该字段的内容或者为 0 或者为 1;0 表示没有颜色表,1 表示
5 _* ~7 K  P; ||        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。& O& T! k5 F: Z6 N/ \; [" c
|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射+ v/ `4 q4 V. q& y" T- A
|        |        |        中的第一种颜色. ^  F% A' s1 [$ x5 q
|        |        | ' i8 X( \6 d, ?8 I/ N( J! J6 V$ f
|--------|--------|------------------------------------------------------------
2 {+ Z, \3 {# u. b& Q- j# v|    2   |     1  |  图像类型码
: G# a* g/ x3 I( e|        |        |                                                     ( l9 V9 B  A( B
|        |        |  该字段总为 2 , 这也是此类型为格式 2 的原因   
& r% K$ C) F6 v3 q. k# c! d|        |        |  . l! `4 T  v) \5 \. z2 O/ R
|--------|--------|------------------------------------------------------------2 l$ }! ?8 |% `6 u2 x6 e
|    3   |     5  |  颜色表规格0 [8 g5 A( x4 }; B4 ^9 `6 v3 ^! ?
|        |        |                                                           x7 N) v$ S& j% S* H* A7 z
|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下. I5 e( m: A& w! `0 D2 Y7 w6 ]2 n
|        |        |  % t, A+ n2 Z6 B% h+ P) T, K
|    3   |     2  |  颜色表首址$ {( d' \6 W/ D( g6 M
|        |        |  颜色表首元入口的整型(低位-高位)索引
3 O# u8 b0 Y& T5 H3 m|        |        |                  " m! e  Z7 r& F1 F) Z1 q
|    5   |     2  |  颜色表的长度
/ _5 ?* W( k, |4 z  W& d' a|        |        |  颜色表的表项总数,整型(低位-高位)     
; E9 y% q) P/ Q+ Z: z( g  V|        |        |                                   
5 f+ C5 G3 J$ h0 A: x7 _6 c|    7   |     1  |  颜色表表项的位(bit)数
( [5 v$ ]( n1 P" j) p! `8 S1 g0 j( q|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA
* P* L  T! L3 L% J|        |        |  6 W6 A* @# d3 D- G
|        |        |                                                           - X6 U! t; w5 _  l
|--------|--------|------------------------------------------------------------
/ }. x2 ?2 g" U# ]7 N8 a( O|    8   |    10  |  图像规格
* p' ~: r" p: D5 i2 {6 T+ L|        |        |                             
; [: V* o! P3 g$ j9 r" z" v|    8   |     2  |  图像 x 坐标起始位置       9 u$ T- ^4 t" u6 G
|        |        |  图像左下角 x 坐标的整型(低位-高位)值
2 ?+ }# E, C0 Y. ^8 W; a|        |        |  
$ s+ Q8 i: U1 R6 f|        |        |
. M: K3 b5 ~2 @  ^|   10   |     2  |  图像 y 坐标起始位置
$ g6 C7 S% R" f9 s|        |        |  图像左下角 y 坐标的整型(低位-高位)值
8 |& j. o4 O3 m. \3 x1 ^4 \|        |        |  
8 c" M0 I2 B  p% d1 y$ n, R|        |        |
+ m( O* o( H. d1 e1 q# _* K3 y|   12   |     2  |  图像宽度
) z$ [/ Q; P, y  q  ?7 A) L6 P8 l, U|        |        |  以像素为单位,图像宽度的整型(低位-高位)值
5 U7 U% S9 L/ N|        |        | 7 n1 _$ U/ n5 O  `; K# Z) M
|   14   |     2  |  图像高度3 S& T5 m# s" f2 U; n! K
|        |        |  以像素为单位,图像高度的整型(低位-高位)值1 s" t7 X) v0 P$ N% {+ |# n" `
|        |        |9 l0 ^3 L& {& q9 s) J$ }3 ]
|   16   |     1  |  图像每像素存储占用位(bit)数1 k# _: N$ z4 q, ?9 [
|        |        |  它的值为16,24 或 32 等等决定了该图像是 TGA 16,TGA243 R5 S, n8 E* G4 D, D' I5 i$ F
|        |        |  TGA 32 等等# x5 S# v8 a# i$ |2 a
|        |        |8 t" W1 c" p  \0 x% _' a
|   17   |     1  |  图像描述符字节! ~1 X6 X; h( g
|        |        |  bits 3-0 - 每像素对应的属性位的位数;对于     TGA 16,
' h1 q" d8 r/ T  c  ||        |        |             该值为 0 或 1,对于 TGA 24,该值为 0,/ Y+ e1 i, v% Z0 p
|        |        |             对于 TGA 32,该值为 8+ |0 M; T5 D9 w. ]
|        |        |             $ O% R8 {) W8 e6 K0 z! b6 h
|        |        |  bit 4    - 保留,必须为 0' A6 W$ k" E) n/ n2 @: Y0 M
|        |        |  bit 5    - 屏幕起始位置标志
1 J8 C* G9 W7 m5 I2 A5 X2 D$ ]|        |        |             0 = 原点在左下角% v* t# x9 i* M4 L
|        |        |             1 = 原点在左上角& o5 r5 H$ \# F7 m
|        |        |             对于 truevision 图像必须为 00 v- I6 j: }9 _! ?$ f4 `6 W
|        |        |  bits 7-6 - 交叉数据存储标志
, X. E- i( r0 O|        |        |             00 = 无交叉                                   + {0 F6 R: k4 n+ [$ u2 Y+ m
|        |        |             01 = 两路奇/偶交叉                        
, j6 X& z& ^7 h2 l|        |        |             10 = 四路交叉                              
( u; j$ m2 }1 K, g) S|        |        |             11 = 保留
1 Z# a- L# o, f0 ]|        |        |                                                            
2 L6 g; F3 }$ Q8 n4 {) Y|--------|--------|------------------------------------------------------------
$ O* X. O8 e4 v( }' ^|   18   | 可变   |  图像信息字段                                       * i4 v# a6 m6 b5 J3 N9 s: _! S
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   $ H, C. h' N+ J9 x  p% y
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以    , U, R% T3 s5 e- h7 q7 r
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   
3 n' U* @1 Y6 W& b' f2 s0 c|        |        |  之后                               9 Y1 Q2 ^. ~4 Y/ z5 z
|        |        |                                                            
- ~6 _" ~$ e5 U|--------|--------|------------------------------------------------------------2 ~" r- R; X0 p& L
|  可变  |  可变  |  颜色表数据                                                8 B2 G! ?$ \1 ]8 x8 g
|        |        |                                                0 N# J5 n) I* J/ F+ e1 ^9 U2 d
|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取/ V, s3 C9 c$ |" c+ W9 l
|        |        |  图像颜色表规格中描述了每项的字节数,为 2,3,4 之一
8 y4 K2 l1 W6 c. l+ V, [  T|        |        |  
7 q* M) J( g  `5 j- T- q|        |        |  , f3 T7 ^5 O9 ~# z; \" _
|        |        |  ) w  F9 L7 U7 u2 s& ~/ D0 ^
|        |        |  3 y7 U7 t0 \  h6 z/ A
|--------|--------|------------------------------------------------------------. U+ V; K8 e$ Y) [
|  可变  |  可变  |  图像数据域
" Q& D* V2 s$ X+ }$ W+ U6 y( C& y# L: ||        |        |                                                   
! _' U& P$ [3 k|        |        |  这里存储了(宽度)x(高度)个像素,每个像素中的 rgb 色值
. C: D" Z! o7 w. Q4 `2 T  G|        |        |  该色值包含整数个字节
/ r5 E0 j1 K% {9 A5 q. q; v|        |        |  
' n; L1 Z. \) p1 E$ T1 I|        |        |                                                           
. d$ D5 V5 Q7 v* D" u  F|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               
7 {) D! Y. l4 ^|        |        |                                                            
9 o6 d- f' X& V( w9 x' c|        |        |  2 字节表项中,两个字节分解成如下形式:               + L) @+ h3 J$ J) u$ W/ e
|        |        |  arrrrrgg gggbbbbb                           8 E& a3 D, g. M9 ^$ k& H
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  4 q0 h. p6 t9 L9 q* l* ]" p! M
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位. ]$ \, ?" L( |, _
|        |        |                                                         
$ E6 s5 D$ ]! y( B|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个" r" R) i* D7 \& s; Y1 s
|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象4 b- I0 n" m/ f8 k& X
|        |        |  TGA 32 类型的图像那样存储2 h& v( u1 W' ?6 S
|        |        |  ( D/ g$ n( g" r, j- }
|        |        |                                                         - K$ X1 X' H; v$ v0 U- x
--------------------------------------------------------------------------------  m& {: L! D+ m# }3 Z% U$ m
. d9 r8 F% u; X; R. G* A9 S
/ M. U+ R$ ]# s  T/ v" k. D9 r
- o* c' m, S: T6 _  F( B% A

0 d. C1 _9 j5 e# C9 f) w. I& Y--------------------------------------------------------------------------------: Y7 W/ D/ a7 j" o0 d
|数据类型 9:  runlength 编码,带颜色表的图像
: t' K+ {9 a( f  R# L  i# r|--------|--------|------------------------------------------------------------
7 T; t# C* l  j|  偏移  |  长度  |                            描述, V/ b2 L# u- {" T; J" k- ]
|--------|--------|------------------------------------------------------------5 o5 k! g' x5 V: s* Q! ^0 Y$ `
|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               ; ~/ V3 K7 D9 A; z4 G" ?
|        |        |                                                            
, p1 y* P5 N$ F- a* z|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     , I+ V3 _9 w% V. O" S6 i
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     
  R3 d' g/ Y9 q9 x|        |        |  信息字段。    4 W" E2 }; H5 }( Y0 n' u9 @4 x
|        |        |                                                            ( {' S' w' k) |- o8 F
|--------|--------|------------------------------------------------------------
; ~, s3 [6 K5 k+ x- ~1 P1 k|    1   |     1  |  颜色表的类型                                           0 H2 m+ p! F- [4 q
|        |        |                                                            / R( B' L# \4 l" J# O
|        |        |  该字段为表示对应带颜色表的图像而总为 1 7 O, T- i( O0 s, H0 X: q
|        |        |                                                            : v2 O: `5 X: K
|--------|--------|------------------------------------------------------------
- K/ ?5 O) p) U( Y; {# s|    2   |     1  |  图像类型码
& I' S3 Q  K4 Y5 F|        |        |                                                            
. N5 h' }4 |7 @% _|        |        |  本类型该字段为二进制 9
4 ~$ o# T/ W5 Y|        |        |                                                            
) ?# f) q) f7 @5 `|--------|--------|------------------------------------------------------------
2 Z* m7 _. \! b  X6 w/ [|    3   |     5  |  颜色表规格4 ^" ?+ ^/ m3 k, `7 r7 i
|        |        |                                                         ( Q. G; X) |$ s6 h) ?
|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下
. ]* i9 l$ }" o5 i) |) C; v2 i|        |        |  
; z2 Z! t* j( Q! o|        |        |  , l) D- p/ T' M6 e2 O0 u! T( N: p
|    3   |     2  |  颜色表首址. a, ?/ k+ q, O
|        |        |  颜色表首元入口的整型(低位-高位)索引" N( F, M4 h8 R% n0 J9 d, u
|        |        |                  4 @" J8 G1 ^' P% a8 y$ G
|    5   |     2  |  颜色表的长度8 ]  \2 y8 r8 L- u$ s6 \6 t
|        |        |  颜色表的表项总数,整型(低位-高位)     6 X9 E* L; ]# W2 N) Y! C) }
|        |        |                                   4 O. G  |* K" V; {: c; {
|    7   |     1  |  颜色表表项的位(bit)数
# R) P( y( N6 K( Q: I  Q|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA# H* \7 _& ~# J+ D/ i
|        |        |                                                           
% q' D! L) b" M' g3 B  B|--------|--------|------------------------------------------------------------' @6 |7 \- b* g+ u
|    8   |    10  |  图像规格                                               $ R' }8 w! Q1 b* F
|        |        |                                                            
- i6 G$ ~0 ?1 r9 @) S|    8   |     2  |  图像 x 坐标起始位置                                       . Y- q* ~! G- K/ }
|        |        |  图像左下角 x 坐标的整型(低位-高位)值               . I% ?+ j, P$ s5 o
|        |        |                                                         
4 x$ G+ Y8 Q3 ?6 e7 J) S2 @|        |        |                                                            
  E. y/ O6 m  C|   10   |     2  |  图像 y 坐标起始位置                                       
4 X% O/ Q  p# L/ ^) P, G|        |        |  图像左下角 y 坐标的整型(低位-高位)值               
( M# C, g2 m- v9 A7 ]9 Z|        |        |                                                         , F; L2 d" S- L( ?# X+ e) E% W
|        |        |                                                            + @$ V7 U7 W, U$ p- A& {
|   12   |     2  |  图像宽度                                                   / D' R3 B$ n- w9 ?1 v  X9 [+ q
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           1 s0 C, ~7 b! o" G& I
|        |        |                                                            / N2 k4 n0 N2 b4 h) k
|   14   |     2  |  图像高度                                                   
/ c' t2 p$ ~/ P4 z# V2 N|        |        |  以像素为单位,图像高度的整型(低位-高位)值               
+ R8 q/ ?$ J2 A3 T! z4 j|        |        |                                                            
1 j7 ^" D' b$ ]$ }' E& t/ A|   16   |     1  |  图像每像素存储占用位(bit)数                             & g/ A6 q+ r' t3 c9 s
|        |        |                                             / j  U% S+ i+ H
|        |        |                                                            , ]/ q% ^9 f( o( ^
|   17   |     1  |  图像描述符字节                                           8 r; u. s1 c8 w  I
|        |        |  bits 3-0 - 每像素的属性位(bit)数                  
; v* Y, ~5 Q1 t+ k- C6 T|        |        |                                                        
# T' ]9 _* Q  v1 u|        |        |  bit 4    - 保留,必须为 0                               6 |1 E3 w6 z; G' W; X$ X* ^
|        |        |  bit 5    - 屏幕起始位置标志                           
1 P$ A% j& S( R4 g|        |        |             0 = 原点在左下角                         q% `, }( {; c, `! X8 M2 A4 y
|        |        |             1 = 原点在左上角                        
6 m3 U, B2 j7 [& n|        |        |             truevision 图像必须为 0                        
) z6 O* j) a4 ~|        |        |  bits 7-6 - 交叉数据存储标志                       " i4 I  B/ Q' ~: _6 T3 z
|        |        |             00 = 无交叉                                   
0 X+ ^! y/ P8 G+ O+ k: B. H/ }  }|        |        |             01 = 两路奇/偶交叉                        
6 \' E% s+ M# B/ D|        |        |             10 = 四路交叉                              
* S: l( w7 y; g) U$ L" f; N5 _|        |        |             11 = 保留
( S1 U8 \& P0 R2 P/ Q|        |        |                                                            
5 E, h. f; G8 C9 `* L|--------|--------|------------------------------------------------------------) @1 W7 Q& }6 P9 ]; m
|   18   | 可变   |  图像信息字段                                       ' L( l- `+ V+ R% x- H, P
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   
! s$ u, p9 ~, B' x$ Q|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以    4 A) w# V7 ?; A; O, Z; t! q
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   
" g( G* D% U* Z5 |( C  \9 t4 C) M|        |        |  之后2 ~5 a" i3 B0 D! L) A7 r. s
|        |        |                                                          3 n9 e8 `1 q: R
|--------|--------|------------------------------------------------------------
+ j2 d0 e6 {9 ^6 I5 r' ~6 M( U- R|  可变  |  可变  |  颜色表数据                                                
& v( c! M% M  s; k|        |        |                                                            
. q: M' x8 z- }! m9 @|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小      
3 X( @& E" y) s7 p3 e- @! B% E|        |        |  和数据项数目决定(在前面相应的说明字段中给出)            
- w- J% }) S4 N* ?& r  l3 Z|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit) ' q2 u% t9 n2 B9 W3 J+ d& E
|        |        |  被认为是属性位。                           
5 p6 Q( H" S; F|        |        |                                                            
! ?1 w3 B+ R% z2 j9 o1 M|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,
: a; {1 q4 P0 ?! o$ k|        |        |              字节 3 表示 RED,字节 4 表示属性           8 P4 R7 ]5 G1 W$ b* [( d! Z0 V1 M0 D
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               . c  G2 r- |9 d2 p: y
|        |        |                                                            
6 l# \% A: T% I% n) [|        |        |  2 字节表项中,两个字节分解成如下形式:               
% r+ R% [; Y! s0 @' n|        |        |  arrrrrgg gggbbbbb                           , V) c5 F$ C3 l4 T
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  * y0 J1 _1 X- ~2 i' _
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。& B% I: u/ d( [2 b
|        |        |                                                            
" g  t3 {8 v, E* T/ w& _|--------|--------|------------------------------------------------------------
! o# n" Q4 c0 G. r4 C  w+ Q+ I| 可变   |  可变  |  图像数据域5 i6 c# }( G" w. h# G% {
|        |        |                                                            6 T* A9 M" y0 s+ Z
|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放
% l3 g3 N6 J9 J( G: X|        |        |  在数据包中;有两中类型的数据包:run-length 数据包,3 @9 n0 L9 p) [8 }9 L9 O1 n
|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,
1 l5 P, B  m( |2 Z|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域
" M3 I/ U: f" h- ~0 C( u|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当
! F: g/ t/ e0 [1 l|        |        |  它为 0 时,表示未加工的数据包
0 m2 ^2 y5 L+ d" _|        |        |                                                            
- Q4 O8 @* ?  b3 Z* R0 {" [|        |        |  对于 run-length 数据包,头信息含义如下* _1 T5 R9 [( c; D
|        |        |      __________________________________________________    6 L  K2 E4 W, X6 {, e5 c
|        |        |      | 1 bit |   7 位的重复记数减一  B! p7 R8 [6 e4 r. D
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |( m9 d) n  I$ \- G) V
|        |        |      |       |   的运行大小为 128,(译注:原文为     |
( e/ U3 Q- c6 a& D4 k|        |        |      |       |   the largest run size)          |  
4 i' b( s5 q( Q  o0 g" U! y|        |        |      |-------|----------------------------------------|
& |/ r  ~/ C% g|        |        |      |   1   |  c     c     c     c     c     c    c  |1 j) \% i% R3 D
|        |        |      --------------------------------------------------
- Z2 t( X0 w! F. l1 y6 Y  B|        |        |                                                        # h+ z" S" [& P9 H6 v5 N
|        |        |  对于未加工数据包,头信息的含义如下
5 f. U$ m) K: |1 [. ^1 X|        |        |      __________________________________________________" a, D  B: z* n! E. b' K, K: R
|        |        |      | 1 bit |   7 位的像素个数减一                   |
( \9 Y( z# s9 z|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |
8 O2 @0 T4 g* A. ]' `% X1 G3 n|        |        |      |       |   类型的一个数据包中像素个数不能大于   |2 S1 {9 s. w, w3 O0 A" @
|        |        |      |       |   128                                  |
. ^; M% k3 r. a! g. E|        |        |      |-------|----------------------------------------|+ b6 H8 f1 W3 M3 `
|        |        |      |   0   |  n     n     n     n     n     n    n  |; F' h& I. Q6 L2 Z& c
|        |        |      --------------------------------------------------; o) w0 ~9 I* r; M
|        |        |                                                        
8 s/ i9 F0 c- U/ O|        |        |  对于 run-length 数据包而言,头信息之后是一个简单的# I+ Z7 v3 @, t9 ^- P
|        |        |  颜色索引,且假定该索引被重复头信息中低 7 位表示的次数  u8 y* n0 n9 H8 `3 V) t
|        |        |  run-length 数据包也许会跨越扫描线
* C5 \3 a* c' f/ ?4 a: j|        |        |  (扫描线起始于某行结束于下一行)
, K. C: i, b2 f& g$ L/ t) M2 @|        |        |                                                        
' g5 X. _% g) n|        |        |  对于未加工的数据包,头信息之后是颜色索引(数值由头信息( j. \$ J  i7 O& [6 s
|        |        |  给出)该类型的数据包也可能跨越扫描线
8 \5 _& g& K/ C; N) L1 N7 L|        |        |                                                            ; F8 G" M: |. ^2 b. E3 g: u7 A8 e, _1 y
--------------------------------------------------------------------------------! Y( {1 M  M$ o

( ^, I$ {. `% [) b3 D* }3 u+ I' `
4 [( ?" ~8 |0 ^' W+ d7 o
1 z: k; j( P3 r
--------------------------------------------------------------------------------" d4 G) s8 T* O# z* s- O
|数据类型 10:run length 编码,rgb 图像
" j# {1 p2 o1 m|--------|--------|------------------------------------------------------------2 S9 q5 z% V3 C4 O) Q7 t  e, A) [
|   偏移 |   长度 |                         描述                              + V( P! a1 t9 u& [7 v. o4 [
|--------|--------|------------------------------------------------------------
1 d" U- g" I5 K/ q|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               9 R) K, p6 X. x) U: J) y6 a
|        |        |                                                            2 i% N) c4 [/ Y
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     $ ]8 \" `% i7 I0 c1 `
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     
6 O& s. T& a  o|        |        |  信息字段。   
- g3 r+ S( l2 d& u, W# {2 d) Q|        |        |                                                            
- W4 K! g( C8 G8 F6 Z0 g|--------|--------|------------------------------------------------------------. c7 @+ [: T; ?- K5 v0 J- b2 w1 F
|    1   |     1  |  该字段的内容或者为 0 或者为 1;0 表示没有颜色表,1 表示. f8 Q; K' f4 e' S! i
|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。
& l9 n- }- F( x|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射
& ~; R: y' r  ?2 A|        |        |        中的第一种颜色5 h, d# `3 @6 O3 L! {2 {# E6 f
|        |        |                                                            ! [( l) s. j, {; O! t" c# i6 t  f
|--------|--------|------------------------------------------------------------
' m& f7 Z% ?4 l|    2   |     1  |  图像类型代码
0 P3 O: Q. t$ o4 ||        |        |          ' }1 T$ x) s5 ^8 S7 }6 I, u# ^/ C: z
|        |        |  本类型该字段为二进制 10
" X% Z0 X7 @) i2 P5 y6 R7 X$ ^|        |        |                        
: w# ^) {" }  Z6 y|--------|--------|------------------------------------------------------------
' o. s& t! @! V) Q' b1 G6 o- g|    3   |     5  |  颜色表规格: ^0 v) A1 S9 H5 {# o8 t. v
|        |        |                                                         - G7 E4 @6 D1 d( H
|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下3 ]2 z% e9 K0 R) N9 L
|        |        |  
/ J& G! t* b: X5 \5 P" G" K# h, `|        |        |  
; I# q7 R0 W1 d* h  y|    3   |     2  |  颜色表首址
  ]( q, n/ a& G; ||        |        |  颜色表首元入口的整型(低位-高位)索引
- h3 L, c+ E' L, M& X  n|        |        |                  % C  f- M5 G8 S$ U
|    5   |     2  |  颜色表的长度( b+ `9 H/ i. L$ @3 ~
|        |        |  颜色表的表项总数,整型(低位-高位)     / s4 E( ]& Q) ?3 X
|        |        |                                   
9 O0 o3 S+ |- ~. B1 Q" S. ^|    7   |     1  |  颜色表表项的位(bit)数# F* q7 M  a7 ]
|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA
+ q# `! V- _- j: t3 U|        |        |                                                            
  L- B* x! u$ `) g& K1 T; K+ z|--------|--------|------------------------------------------------------------
; |: u$ O) f# F0 ?3 o) X1 f|    8   |    10  |  图像规格                                               
6 S& d4 V' Z1 b. G# m( b1 L% ?|        |        |                                                            & J. B7 b, h3 U  v) M2 _/ g
|    8   |     2  |  图像 x 坐标起始位置                                       / j. R2 H4 x. o; K, b
|        |        |  图像左下角 x 坐标的整型(低位-高位)值               
) e3 Y8 O. |( N) x# z% q0 k: B|        |        |                                                         + Q* {' \- F! n: |: D0 w
|        |        |                                                            
! P. X4 E* w( A( z|   10   |     2  |  图像 y 坐标起始位置                                       2 N; [: S2 V; J; n1 T6 V: G7 w" d
|        |        |  图像左下角 y 坐标的整型(低位-高位)值               ! g/ ~& H7 s$ H! x& i& e) l
|        |        |                                                         ) a1 r0 {1 |1 F, k
|        |        |                                                            * k- s" j& h7 B% `; q! J0 w$ k
|   12   |     2  |  图像宽度                                                   5 F3 S0 N6 U: M4 V9 U% ^
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           
" ~. Q3 y0 W) n5 B9 a5 b|        |        |                                                            , V4 t. Y- ]1 I0 ~. @3 W& O% P( t
|   14   |     2  |  图像高度                                                   % |9 }9 p' ^" i
|        |        |  以像素为单位,图像高度的整型(低位-高位)值               5 ^; l7 \3 O. `$ }# g6 K3 X% n1 _
|        |        |                                                            ; [  r. ]8 J& n# q
|   16   |     1  |  图像每像素存储占用位(bit)数                             % c/ a3 ?, j: S) @
|        |        |                                             
- V+ c( u( q7 O, _) e: W+ T7 x: G+ j|        |        |                                                            
0 w$ U  E" I  W8 T|   17   |     1  |  图像描述符字节                                          
6 F# l& T/ O1 U7 ?|        |        |  bits 3-0 - 每像素的属性位(bit)数                   6 `8 t0 |, S7 u) a* q
|        |        |                                                        # N& ]6 Z, j5 B0 `* S
|        |        |  bit 4    - 保留,必须为 0                              
0 u6 H8 j9 W8 X1 e$ y|        |        |  bit 5    - 屏幕起始位置标志                           # t) s8 _( N4 ^
|        |        |             0 = 原点在左下角                       
9 o. }: q, B" p: q# W|        |        |             1 = 原点在左上角                         8 Y! \. f% r3 L4 ~" U- j* A% U
|        |        |             truevision 图像必须为 0                         ) J4 n7 V( A# H8 \$ B9 d! b. ]
|        |        |  bits 7-6 - 交叉数据存储标志                       
! W5 M2 d/ J$ S|        |        |             00 = 无交叉                                   
# e9 ]  u$ P# x+ G% U|        |        |             01 = 两路奇/偶交叉                        ( F" H" J" R% I  x3 @/ Z# b( j
|        |        |             10 = 四路交叉                              
1 e& `7 Y$ S3 G1 Q; C2 q  ^|        |        |             11 = 保留                                   ( @7 p7 \  @6 [& t& G
|        |        |                                                            8 a; }0 _7 L3 v) e+ z
|--------|--------|------------------------------------------------------------
  @* G# ^! O1 q$ q& R|   18   | 可变   |  图像信息字段                                       
) I. B. }( Z6 B) S, M|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   
* _& l& Q  x! R* K6 A|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以    0 X! `1 a& ~% Q8 p
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   
, U: g2 p9 v; C# ||        |        |  之后
" a3 e  K8 @' V|        |        |                                                            
. G6 Y/ Y$ i/ M( @|--------|--------|------------------------------------------------------------
( ~9 p1 _9 L! G% E9 n4 c/ s|  可变  |  可变  |  颜色表数据                                                
, T5 V  z; |5 k" W9 {$ a/ g0 x|        |        |                                                * S+ S9 J% {! e$ p9 c7 L  y, l
|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取: X' m2 I' h$ d+ q* G
|        |        |  图像颜色表规格中描述了每项的字节数,为 2,3,4 之一
) I. Y% r; n# X2 X) F|        |        |                                                            8 t: o( j' n, Z8 {- \9 ^# r
|--------|--------|------------------------------------------------------------
4 J) l0 O: F  O. P* W' R3 J| 可变   |  可变  |  图像数据域; }! ?# b: a& _# V) D. Q
|        |        |                                                            - I) }6 [- Z2 T8 ?; N0 T
|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放
) D9 a0 K  l# F# D$ q|        |        |  在数据包中;有两中类型的数据包:run-length 数据包,. |* |0 R. {2 K1 C3 Q# R
|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,! V& X. S! M) M
|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域
% p: D8 r- _( o! z* q/ U( w|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当
& c! `8 @! Y  X1 R6 |( K3 s9 t! s|        |        |  它为 0 时,表示未加工的数据包; N, b( ~; A: @7 d
|        |        |                                                           0 S3 ?& ?2 }. O/ I2 ^6 H+ L4 u: C
|        |        |  对于 run-length 数据包,头信息含义如下
. F; N" U# R! P0 L. U  D, U7 T: R4 L|        |        |      __________________________________________________   
, ^4 z( `8 W3 v1 n|        |        |      | 1 bit |   7 位的重复记数减一  S: {, E. C7 k9 T2 k) C
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |
5 i& T, j; T$ ^0 B|        |        |      |       |   的运行大小为 128,(译注:原文为     |/ h" ~% a4 Y* T
|        |        |      |       |   the largest run size)          |  3 s  x4 v: n( \: f8 T
|        |        |      |-------|----------------------------------------|- X/ H* h3 |3 q5 g
|        |        |      |   1   |  c     c     c     c     c     c    c  |% U" c$ J5 _5 I
|        |        |      --------------------------------------------------& [/ X+ x* i) P, j6 {+ }  O# [9 m
|        |        |                                                        
% E7 M9 h2 h  t+ ~6 C3 |0 P9 t9 }|        |        |  对于未加工数据包,头信息的含义如下! o! O6 W) t3 n8 O% N; C
|        |        |      __________________________________________________
: h- a7 G  D! v|        |        |      | 1 bit |   7 位的像素个数减一                   |
. Y" b7 `) n. F7 l3 |6 _; @" l) o9 i|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |
& [& ?* Z1 W$ c) `|        |        |      |       |   类型的一个数据包中像素个数不能大于   |
# l1 k6 T% d4 o2 [2 e# Z# U|        |        |      |       |   128                                  |
5 t) r& a+ C0 \7 b3 }|        |        |      |-------|----------------------------------------|
- [. B% I: X5 Q: {3 i" c8 s5 ]9 P|        |        |      |   0   |  n     n     n     n     n     n    n  |! b+ [' S9 F3 }% G
|        |        |      --------------------------------------------------6 s: l/ T- M1 P* i. G7 g# S0 {
|        |        |                                                            
/ F8 S) p% S3 x. B! F, F|        |        |                                                            
- U" @& a: f2 T7 Q# H# O|        |        |  对于 run length 数据包,头信息之后是一个简单颜色值,
( u+ m& e& J  c  V# Y$ c0 ||        |        |  且假定该值重复的次数为头信息中记录的数6 X6 Y! Q$ |; c) J+ B  K2 d" b
|        |        |  run-length 数据包也许会跨越扫描线# W; g. z- [6 t
|        |        |  (扫描线起始于某行结束于下一行), Z/ ]- C- g6 Y5 ~2 R
|        |        |                                                      
# x/ f3 E& V# M  m: o  L2 S5 ?$ w|        |        |  对于未加工数据包,头信息之后是颜色值(数目由头信息指出)
0 j% F0 b9 E5 t$ a0 p0 p; {|        |        |  0 z. c. c" \2 L' g: L2 q0 K
|        |        |                                                8 }5 M, |) c: o1 ]
|        |        |  颜色表项自身有 2-字节,3-字节或 4-字节几种大小(分别
: R' A+ @8 v* T( B8 S|        |        |  对应 TGA 16,TGA 24 和 TGA 32)形式如下:
* a& ]1 `* S; @) O( H|        |        |  
* i- r$ V$ m" F" f4 V8 z4 O1 C  o& U|        |        |            
( s, D: B- d" W3 p7 z|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               ' z" i; ]; L$ f, g; |- h
|        |        |                                                            
  u2 o! r1 Z) O, O% S- K|        |        |  2 字节表项中,两个字节分解成如下形式:               
' y1 H8 a( n9 [0 I|        |        |  arrrrrgg gggbbbbb                           
$ n0 q7 h: C! Z) [|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
/ a9 W0 ]2 F" }5 c|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位
8 F8 p( ^' B, y' W( z3 a|        |        |                                                            U# B/ |: ^( Y8 ]
|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个
* @6 g. T' E; p; W0 y6 C|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象
3 I" A4 f4 ^& y- K|        |        |  TGA 32 类型的图像那样存储# a% R* e5 T% S: t0 x9 u. z) G
|        |        |                                                            ; q9 Z! M/ G. ~
--------------------------------------------------------------------------------) B8 ?9 @5 ?2 ?: w/ N
! o  T* R( s! I1 p
<完>
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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