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

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

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

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

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

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

原文9 F8 \5 X7 X( r0 T+ l: g
http://dev.gameres.com/Program/Visual/Other/TGAFormat.htm+ ~8 `& v( B% }, g, d+ G% O% w7 k2 G
  
# S6 r- M8 O: D根据david mcduffe编写的TGA文件格式资料翻译而成
& l( A0 U: b* u$ W 
8 h% N, N0 I+ h$ \本文档是为满足许多对 TGA 图像格式的了解需要而创建的。本文摘录自truevision 技术指南的附录 C,如果! m* X& K! S& l7 S. y
需要更进一步的信息,请致信以下地址:
& r5 e7 h8 F) }" D  j' x5 V
/ ~' l! C# x, `5 M  {( J' q0 A1 ?; x% N           at&t. e* ~+ ]2 T+ y
           electronic photography and imaging center
. H. y" \( v& P4 s7 \& x" J. l           2002 wellesley ave.5 _. ^( ~8 n: _7 C. U1 q
           indianapolis, in 42619
$ b% b6 v* x: t. S本文档不求全面,但力求准确。如果你发现了任何拼写错误或内容错误,请告诉我,( david mcduffe, 7 t4 e& L' S% d9 |# V
75530,2626 ),我将改正这些错误,谢谢。
8 P  ^# v" w6 }# v
$ y* G  F8 {: @% k; P不全面的原因是 TGA 包含了超过六种图像文件格式,而其中的几种较为常用。 我选择了我现在使用的格式并5 i: p% M' ]& f( w
在本文中加以详解。 如果你需要本文中没有包含的格式说明,你可以与你的 truevision 代理商联系。1 j5 v5 N8 p9 Z+ P
对所有的 TGA 格式的文件而言,其第三字节(二进制整数)用来区别各种不同的 TGA 文件。下面列出了该字8 L% b3 i. Z8 Z* \) [4 i
节表明的对应文件类型:
) d' c+ J, i) ^5 s+ n9 a    0  -  文件中没有图像数据
0 H, X" l, u. f    1  -  未压缩的,颜色表图像
; Y8 B7 |8 w% R9 H# I7 V' o    2  -  未压缩的,rgb 图像5 a+ `7 E$ H( v
    3  -  未压缩的,黑白图像
9 K5 M4 H  J/ Y    9  -  runlength 编码的颜色表图像4 O  R$ S& X4 R. F/ c* C
    10 -  runlength 编码的 rgb 图像
; X' S* c9 L+ Y# V. T. Q    11 -  压缩的,黑白图像
' m  G! m* c% w    32 -  使用 huffman,delta 和 runlength 编码的颜色表图像4 r1 {$ [) V! s! U" t
    33 -  使用 huffman,delta 和 runlength 编码的颜色映射图像,4 趟四叉树类型处理。
, ?* @2 V0 h' _/ N) C6 F5 f* D    本文仅仅描述对应 1,2,9 和 10 的文件格式。
( [8 p: p8 y! {; X7 x& {8 F- M" n& ~
' u$ e% A$ y5 t2 W) v: Q- d--------------------------------------------------------------------------------
8 y$ I- g5 ~" j" v|数据类型 1: 颜色表(color-mapped)图像
4 M, A, z7 `( l- s5 |+ @|--------|--------|------------------------------------------------------------
: q7 H- t4 x8 ]% z" j. i|  偏移  |  长度  |                            描述
, Y; s! e2 s) n|--------|--------|------------------------------------------------------------) M" E8 r2 B- h) A$ Z
|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               , B$ J2 x+ [( d
|        |        |                                                            & P' D0 K3 i7 ]) ~0 X( @2 s7 ^9 E, Z' d
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     # x7 a" H( y0 |: k/ ?
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     . n( O4 T  h. K+ u6 q+ n* a/ E- c
|        |        |  信息字段。                                   
9 c$ R5 @* K1 s. Q) r* A|        |        |                                         
1 l% m2 }# w2 p  N! J0 ?8 M+ \|        |        |                                                            
% X7 K+ M% S1 G3 i|--------|--------|------------------------------------------------------------: W  f" C2 l4 S& t. ~' M3 @- e
|    1   |     1  |  颜色表的类型                                           * F; w7 ]4 ?/ d( S+ X
|        |        |                                                            3 J7 S1 F$ d  C6 [/ Y
|        |        |  该字段为表示对应格式 1 的图像而包含一个二进制 1           ; B3 ]- c6 O$ Y" e  S+ G6 `
|        |        |                                                            # v. j( \  ^# f9 B' s3 M0 H1 O
|--------|--------|------------------------------------------------------------
) A" `/ h8 h) O4 J% @2 O|    2   |     1  |  图像类型码                                            
( f9 z% b3 I+ M# K# S|        |        |                                                            
7 O7 ~5 a! G/ d; y! k* f|        |        |  该字段总为 1 , 这也是此类型为格式 1 的原因               - ~) e& z  Y4 d# s7 V
|        |        |                                                            2 }1 x" V. b) ?3 |& o' T" E0 N
|--------|--------|------------------------------------------------------------0 y3 r# C0 Y2 |+ ~
|    3   |     5  |  颜色表规格                                       . a' D3 T' a' P8 \
|        |        |                                            
' _1 K% ^0 ?# Y) D* }- V|    3   |     2  |  颜色表首址                                                
7 m: X# v. N' i* v* ~9 r1 c1 X/ ~|        |        |  颜色表首元表项的整型(低位-高位)索引                7 I; i* Q5 j; h! ]# D
|        |        |                                                            0 u1 W; o$ `2 E5 B$ z) ?
|    5   |     2  |  颜色表的长度                                          & X9 z1 \1 M% \$ }
|        |        |  颜色表的表项总数,整型(低位-高位)                  
: |8 ^: X" J! [|        |        |                                                            
) O! l9 R0 \8 w|    7   |     1  |  颜色表表项的位(bit)数                                   
: {6 L5 G. }0 N( F  \1 B+ d|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA 8 }6 N9 C: c; y0 h5 I/ }
|        |        |                                     4 |& s% @1 n" Z  z# y8 B
|        |        |                                                            + }8 v# g/ `+ b$ A3 _; g
|--------|--------|------------------------------------------------------------
% k5 O4 B% O0 I. s5 g3 m|    8   |    10  |  图像规格                                               ( A: x3 s4 n! K8 V, B7 ~. r
|        |        |                                                            ) n9 J; u' l8 X8 T5 h4 S- `5 }
|    8   |     2  |  图像 x 坐标起始位置                                       ; _( l5 B5 e7 h0 H
|        |        |  图像左下角 x 坐标的整型(低位-高位)值               
  z0 \; ?+ m  J4 W# V" Y5 \|        |        |                                                           ]/ i, U) c; S( P) s* a) @. M
|        |        |                                                            + f$ S3 L* Y5 |( ^# Q% O
|   10   |     2  |  图像 y 坐标起始位置                                       ; _; {; `; {0 O; i) O5 f+ B
|        |        |  图像左下角 y 坐标的整型(低位-高位)值               . D; q, d; U6 M1 Q) P+ `
|        |        |                                                         
. P# Z) a2 Z$ l" z|        |        |                                                            
7 f! j  i& K. N* w: N) i  a|   12   |     2  |  图像宽度                                                   
& y* j1 R. v! x) b|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           
- Q; {. }) Z2 d; A, R|        |        |                                                            2 {/ d0 P% {2 T1 l6 p
|   14   |     2  |  图像高度                                                   
2 G. i) t- q8 f  n8 J5 c2 y3 T! G  P! e|        |        |  以像素为单位,图像高度的整型(低位-高位)值               2 t: O" }; r. S( Q6 _& N
|        |        |                                                            ' c8 S, Q9 A7 F! R/ C3 @- `( u
|   16   |     1  |  图像每像素存储占用位(bit)数                             
# h, A9 {! X# M/ a|        |        |                                             2 q) v! x& H/ U) h2 C( w
|        |        |                                                            ( j/ |6 V( I# s& R0 p" S. I
|   17   |     1  |  图像描述符字节                                           7 p- e# ?1 Q" |! b7 k$ f! @
|        |        |  bits 3-0 - 每像素的属性位(bit)数                   # t1 B  f3 Y* f5 D% j! ]9 z" z0 |
|        |        |                                                        
) E: c- ~, f& B  l; X|        |        |  bit 4    - 保留,必须为 0                              
2 D& _* u7 y- _# p; g: R3 R; x|        |        |  bit 5    - 屏幕起始位置标志                           
& u- R8 p. V* Z/ [3 D|        |        |             0 = 原点在左下角                       
- d; N" F8 m! m8 R4 N6 B/ s|        |        |             1 = 原点在左上角                         . b' C7 C9 p4 G& |* S# Z" T
|        |        |             truevision 图像必须为 0                         1 P" G5 n& v0 C' T' {1 n
|        |        |  bits 7-6 - 交叉数据存储标志                       * b$ g! A9 h' Z
|        |        |             00 = 无交叉                                   # E; ?: v$ O/ B
|        |        |             01 = 两路奇/偶交叉                        , g1 \4 f( ~0 |  e; H  L
|        |        |             10 = 四路交叉                               ( }* t/ S4 r) \3 m: ~/ ~
|        |        |             11 = 保留                                   
7 S7 n  r" y" ~* }9 l2 C|        |        |  这一项应该设为 0,不要问我为什么                   % o5 x: O) Y) W3 ?$ k' }
|        |        |                                                            
( O% s. ?8 J, }- b5 l& `/ ~# V) l|--------|--------|------------------------------------------------------------
9 U3 h2 |0 Y% v. {|   18   |  可变  |  图像信息字段                                       
! S5 P1 K  ~# q9 E& L2 ?2 P|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   ( o7 c8 x! `& L
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以    9 h# ]) j) F( L+ k9 G+ ?
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   & t" r* l; W9 r
|        |        |  之后                               0 b- x5 }* W4 Z' m+ v, d0 z
|        |        |                                    6 m1 y3 b) ]) e* v+ ]
|        |        |                                                            
; w. n, Y" C  N  o|--------|--------|------------------------------------------------------------% [6 X9 U6 ?" Y: G+ Y4 r0 d: N
|  可变  |  可变  |  颜色表数据                                                
8 L% U9 s' `/ B; `5 b1 G, j* F|        |        |                                                            4 d$ e# L  K5 ?1 K- O7 n. l5 j
|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小      & W( E6 p! R- a$ J4 n% [
|        |        |  和数据项数目决定(在前面相应的说明字段中给出)            1 Q' L7 G5 j6 f$ {, ^1 y2 t  ]
|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit) 3 }. [2 N! I% w- S: j, B
|        |        |  被认为是属性位。                           ! n- g! V  _: e; F+ v
|        |        |                                                            
% Q% @+ S% G/ o) }3 S|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,
0 ]0 m& o$ ^& M2 o|        |        |              字节 3 表示 RED,字节 4 表示属性           
7 u/ @+ T4 F) E$ n- Y3 p. S! ~|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               
! ^0 P* ?8 l6 W' {, D7 M5 R|        |        |                                                            : E3 _! Z: \; |0 F# Q
|        |        |  2 字节表项中,两个字节分解成如下形式:               : }9 ~+ v' [2 v6 |8 a+ {
|        |        |  arrrrrgg gggbbbbb                           : ?& C- _9 i8 D  W
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  + z0 R- M( ?' t2 N2 J
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。  & ^2 O/ B; t$ [9 W: W
|        |        |                                                            8 Y( t/ a4 z1 w! k  W. v9 f; Z$ k
|--------|--------|------------------------------------------------------------6 m* q0 E% b/ |- H
|  可变  |  可变  |  图像数据字段                           ; o* }# g/ B, s- S
|        |        |                                                            
9 Z: Y4 P9 C& |" L7 ?8 d. A" e1 ]|        |        |  该字段给出了 (高度)x(宽度)个颜色表项索引,每个索引    1 \3 b  \2 a. E( E0 A/ s7 P* N7 y
|        |        |  以整数个字节的形式存储(典型的例子如 1 或 2 个字节)      
" S4 Y% A' B0 U  |2 Z|        |        |  所有的数据都没有符号,对于 2-字节表项而言,低位字节是     
8 ]$ A4 o7 A( Z: |+ ?$ N|        |        |  先存储的。                               & p- y6 @# M, q0 c% L' }
|        |        |                                                            
! r& s- w( R& u. T9 w8 t$ n  Z4 I: v! ^-------------------------------------------------------------------------------" r: m) [8 P/ Y5 q+ |
3 z2 g: p& D* @2 O* W/ t

. H- {2 g8 S" M- X' W
/ V+ n/ o  W& J' ^. a2 D--------------------------------------------------------------------------------% n! e1 S# w- s% Y, Y, n
|数据类型 2: 无颜色表 rgb 图像                                 
0 u8 S* {7 L1 U" S7 G. L|--------|--------|------------------------------------------------------------
  C. e, `% s: ^- F- E|   偏移 |   长度 |                         描述                              . R, d8 @: P& Q4 o9 ~! z
|--------|--------|----------------------------------------------------------
9 D/ l* ]9 u& U# B  Z|    0   |     1  |  图像信息字段( 见本子表的后面 )的字符数* a8 A$ a$ V. Z
|        |        |                                          ! I& H8 O/ v% l2 z
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度) x6 D5 r+ {& w+ |
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的$ l: C& [7 A& u) K5 X* E
|        |        |  信息字段。
( v& H! V# e5 M* C2 A7 X# I% R9 P- ~|        |        |
* b& r7 @' [, w4 M5 P/ a; ~2 `|--------|--------|------------------------------------------------------------- v) E: E0 I* i# H2 l
|    1   |     1  |  颜色表类型
7 o/ o' R/ v, _1 t4 Z7 Z# J3 s5 d|        |        |                                                 " R0 J% J) T3 t5 j
|        |        |  该字段的内容或者为 0 或者为 1;0 表示没有颜色表,1 表示, d' s4 |: d% o) F
|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。0 }( L# E/ x9 ^& s% ^
|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射
2 A- e: s7 V( D& v, ~# ^|        |        |        中的第一种颜色
5 C9 N8 `8 E9 b|        |        |
7 v- V: Z3 ?8 w7 z|--------|--------|------------------------------------------------------------' w7 G( j# b6 L5 f+ ~) T
|    2   |     1  |  图像类型码  d3 r+ P* u4 x( [0 i+ p
|        |        |                                                     2 Q" E" y0 s" |5 V: z4 z; @
|        |        |  该字段总为 2 , 这也是此类型为格式 2 的原因   
( n/ W/ S7 L4 V2 a9 o|        |        |  8 V4 v; b5 f- ?
|--------|--------|------------------------------------------------------------+ a, ?9 k7 f: n$ l. p2 v
|    3   |     5  |  颜色表规格( d# S; `& B, W' j) V; a$ D
|        |        |                                                         
$ u& L+ Z6 D7 b: {; |9 L6 k$ D; B|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下$ Q3 s; k) Q% p
|        |        |  
/ l" m8 j9 K5 A  q9 |6 H|    3   |     2  |  颜色表首址0 B1 t# T! S& p; m3 W5 U
|        |        |  颜色表首元入口的整型(低位-高位)索引; j  e; D5 n' ~% V$ \9 E
|        |        |                  & J. F% c9 M! I; w7 K/ {- g
|    5   |     2  |  颜色表的长度, i! J, m4 h+ }1 i8 J) n$ n
|        |        |  颜色表的表项总数,整型(低位-高位)     8 x* x6 h9 y9 O7 H' O/ |( v
|        |        |                                     A: b& o- y& r, l
|    7   |     1  |  颜色表表项的位(bit)数
2 c8 d4 j6 }5 s* D|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA' v" R* C+ }6 A: J+ v' j+ o3 I
|        |        |  
, `$ O& E. n6 f|        |        |                                                           & e8 w7 ?% o1 @3 ]1 \
|--------|--------|------------------------------------------------------------
7 k3 Z% H4 g1 |) ]7 x|    8   |    10  |  图像规格% |% M3 A" _) ]) j7 U2 ^0 n) c: i
|        |        |                             
6 i5 T0 ~0 Z3 [2 F6 b  p4 R9 L|    8   |     2  |  图像 x 坐标起始位置      
" w# n* y  d1 J% w|        |        |  图像左下角 x 坐标的整型(低位-高位)值, a8 f% m5 c' q. S% w& d, g! V" {
|        |        |  3 D# I# _/ S7 c' x2 Q
|        |        |
/ I/ W7 O1 j) X7 j) P|   10   |     2  |  图像 y 坐标起始位置
, ~* U3 D6 @+ x|        |        |  图像左下角 y 坐标的整型(低位-高位)值
8 Q4 d! H+ U5 ^2 Y' E|        |        |  4 |; W: G6 ]: {. n, e9 \9 ~
|        |        |
, g( O) c6 E0 E- w) w|   12   |     2  |  图像宽度
4 d+ T$ ]# B% u|        |        |  以像素为单位,图像宽度的整型(低位-高位)值
' |# n/ l/ q7 ?- t8 h) j9 M. x|        |        | $ b* }3 y1 @' g" f
|   14   |     2  |  图像高度
- \8 T* ]& R+ D  J! S' q9 n3 s|        |        |  以像素为单位,图像高度的整型(低位-高位)值
, v5 ?7 ~& b3 I9 G+ x2 `" `3 }|        |        |! ]* A' h, t0 u7 S& O$ n  W$ ]$ u
|   16   |     1  |  图像每像素存储占用位(bit)数
3 B- h# Z7 Q  ^8 H; h7 L|        |        |  它的值为16,24 或 32 等等决定了该图像是 TGA 16,TGA24
' [# P4 O# z# j|        |        |  TGA 32 等等' m" @5 q' m  ?: C' A
|        |        |- i0 M. b) C+ N% V; z/ Y+ z
|   17   |     1  |  图像描述符字节! O0 l+ q, g6 `
|        |        |  bits 3-0 - 每像素对应的属性位的位数;对于     TGA 16,4 j& v( a& ^1 L  X6 d
|        |        |             该值为 0 或 1,对于 TGA 24,该值为 0,
7 e% d3 `0 _" r6 @% P2 Z4 n|        |        |             对于 TGA 32,该值为 8
7 ?- x; T2 J7 [( B; h, x|        |        |             # t# z1 S2 }8 d6 y1 ?2 P3 W; Y
|        |        |  bit 4    - 保留,必须为 0! q3 j8 D4 W& E% V! f1 n
|        |        |  bit 5    - 屏幕起始位置标志
; o; K8 n) q2 N) ]|        |        |             0 = 原点在左下角
) o5 ]8 G  i3 y4 J9 ||        |        |             1 = 原点在左上角, U) Y- d9 {& f2 @3 e8 r" _
|        |        |             对于 truevision 图像必须为 07 w& b3 E3 s, `
|        |        |  bits 7-6 - 交叉数据存储标志" o6 f8 a: @- c9 H$ ]
|        |        |             00 = 无交叉                                   
- p0 }8 @% _  M- `7 |- c% [|        |        |             01 = 两路奇/偶交叉                        ! M* y  P" C7 w" f' c
|        |        |             10 = 四路交叉                               , f1 [! w) j/ @& Z) l4 s
|        |        |             11 = 保留
- U7 P7 T- }0 `5 A|        |        |                                                            7 O9 ^/ |  |  r& D9 X1 a
|--------|--------|------------------------------------------------------------
" k* e1 N* l2 \3 {* C/ M9 W|   18   | 可变   |  图像信息字段                                       * Z. x3 Z$ N! c
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   6 j: F; I5 Q/ p+ G2 H; ?
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以    ; Y% J7 Q0 E+ [; y% ~4 @
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   
: ^2 z: W* T1 p; n7 f|        |        |  之后                              
7 X2 V) r6 ?/ `( T9 _6 c8 ?7 N$ x|        |        |                                                            
1 s$ b8 U# t- v+ V2 A& K1 B|--------|--------|------------------------------------------------------------& R) g4 ~$ _1 u6 O$ J
|  可变  |  可变  |  颜色表数据                                                
: Z  ^+ H2 a1 H8 s( n|        |        |                                                
( _$ H8 L& N% F3 Q+ r* ^|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取
6 m7 s& C8 a( |  y& x4 _- B- {|        |        |  图像颜色表规格中描述了每项的字节数,为 2,3,4 之一
1 k+ B1 q0 ^; F$ l$ K/ E1 r|        |        |  : ~& i" N2 X/ M* J: E
|        |        |  0 V) ~9 T0 r* m* y6 U0 L9 @% a
|        |        |  
8 y; r3 i5 e! T- t8 ~3 d8 l  q6 T|        |        |  & g% \( k1 ]* G" G
|--------|--------|------------------------------------------------------------
+ ^1 x* {7 l# S6 `( g. ?: `|  可变  |  可变  |  图像数据域; G; r0 h: y8 O8 k' R
|        |        |                                                   
/ ~- u6 a$ x9 w. k& u7 ~|        |        |  这里存储了(宽度)x(高度)个像素,每个像素中的 rgb 色值  @8 c. y. {/ x* A1 {2 {0 o
|        |        |  该色值包含整数个字节
! X" k/ ]1 v& [2 ]8 n|        |        |  2 ~) T. N7 w1 n- u4 ?1 N
|        |        |                                                           
8 ]; E  B9 r/ v7 i|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               
0 g/ F/ L2 C8 n* Z  I7 }|        |        |                                                            
( N" L7 g- ~9 L& r: v|        |        |  2 字节表项中,两个字节分解成如下形式:               8 V- D1 z4 J# b( j
|        |        |  arrrrrgg gggbbbbb                           
+ J: c, u. K: o3 F|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  & v) ^; G6 K( U4 z! p0 F4 \
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位
" p: E4 f# S1 r8 t4 B" p9 g|        |        |                                                         
: ^2 O  L; g. m! l! _& F|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个% d2 O; y$ w" Z. Y- }4 o6 C. Y
|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象1 O4 ^: u( I% o# k
|        |        |  TGA 32 类型的图像那样存储5 v+ `9 k. |2 q# l+ A: v
|        |        |  
+ [! M- z1 \7 z|        |        |                                                         
, z! V& b0 x' z. H5 C--------------------------------------------------------------------------------
' J8 z; q1 M& A+ ~& i3 u: B8 f: a/ H3 j# {

3 Z$ p1 C( ?8 p$ }0 l0 ?0 b8 G9 n7 p

# }9 I& A5 `* [3 _; F* ?--------------------------------------------------------------------------------* c( g& Y" ?2 t- w
|数据类型 9:  runlength 编码,带颜色表的图像/ v" r3 j3 d" S6 b
|--------|--------|------------------------------------------------------------) G% [) D/ h$ F6 D0 l  d2 D. ]: E
|  偏移  |  长度  |                            描述
  H( m) W6 h  p2 ^+ V( ^|--------|--------|------------------------------------------------------------
; I! l! h" o, D. R|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               
* v% K) L5 H% k8 [$ b# i7 {|        |        |                                                            
/ z7 Y+ z9 C4 P) W: g# I; n+ R|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     $ \" v$ P1 R! ]0 m5 ]+ \
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     
, ~4 _# W8 j6 q4 H& V+ ~: L) Q|        |        |  信息字段。    , k$ U0 s- Y& h$ _' e/ a
|        |        |                                                            
  G# K; M+ V+ x2 h8 x|--------|--------|------------------------------------------------------------
8 k) E6 X& ^' _* r+ k* N: n|    1   |     1  |  颜色表的类型                                           9 [1 x' p. R% F2 G) q
|        |        |                                                            
" S- \  R- S) ~; o|        |        |  该字段为表示对应带颜色表的图像而总为 1
" q+ ]" K* ^$ q( f|        |        |                                                            
9 y2 e2 x8 o7 w% l) }) u5 n|--------|--------|------------------------------------------------------------
% s5 G8 N# x+ k- W7 ~" H: `8 a# p|    2   |     1  |  图像类型码
9 W5 Z& ~  ^% _% S2 N( O8 r0 i|        |        |                                                            1 j  p. l: [2 ~! a
|        |        |  本类型该字段为二进制 9
) t  A1 l) [. E; O|        |        |                                                            
1 R# n" P# U! \|--------|--------|------------------------------------------------------------/ M9 h* x8 C- Q0 _
|    3   |     5  |  颜色表规格
0 @6 i( y1 M7 I5 v2 J: s|        |        |                                                         % P/ O- t9 M1 b; \, W
|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下
: X& L* d; l& w( d- a2 \7 `|        |        |  & k: z4 Z3 Q: t1 `* n
|        |        |  
! z+ g) n/ S# R. M+ F|    3   |     2  |  颜色表首址
3 e# c6 U0 {0 L/ j0 {! _  W0 _( p|        |        |  颜色表首元入口的整型(低位-高位)索引2 _: u  x9 q. g2 H0 t- [9 @
|        |        |                  9 p. K; p( k4 Y! g. [9 E) y
|    5   |     2  |  颜色表的长度6 O3 g. Z5 x9 D2 o9 ]! t3 A6 G$ D
|        |        |  颜色表的表项总数,整型(低位-高位)     
5 r% y; K! w3 w; T|        |        |                                   
- H9 ^. P: L- x  c/ z$ ||    7   |     1  |  颜色表表项的位(bit)数
) d# @, r1 Q2 N" Q- \|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA5 O7 Y* x9 |; Z; M4 r8 U+ M% s
|        |        |                                                           ! ?. X* c, R( {, R8 ?$ n& v$ n: h- M
|--------|--------|------------------------------------------------------------6 \' d! [  y9 P5 ?/ N* p
|    8   |    10  |  图像规格                                               
) H# l' j6 A4 U0 n' q|        |        |                                                            ; Q9 k/ l) f1 h% `( W5 m! @
|    8   |     2  |  图像 x 坐标起始位置                                       
* Z( ]/ Z. x. a' K" N, A: I  h5 ||        |        |  图像左下角 x 坐标的整型(低位-高位)值               
# \! Z+ F' J2 Q" r|        |        |                                                         
8 ]3 p/ Y/ L9 f0 I$ X|        |        |                                                            
7 B! X$ n9 X. ]& G% G: Y$ i|   10   |     2  |  图像 y 坐标起始位置                                       + \4 H; r  w+ L
|        |        |  图像左下角 y 坐标的整型(低位-高位)值                 N% x; }) g) k# J# T: P
|        |        |                                                         
2 b! z2 o$ @8 ?0 ~8 C: n|        |        |                                                            
6 I- }( [, S6 q+ a|   12   |     2  |  图像宽度                                                   , ]4 U7 n$ F) {. o# L+ v" u! f
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           . i; K6 t$ z. u$ _
|        |        |                                                            
) V- b. t- G2 v3 ~|   14   |     2  |  图像高度                                                   
3 k6 V5 e+ t7 q. J: H3 M|        |        |  以像素为单位,图像高度的整型(低位-高位)值               
: [+ E8 v1 S0 g- p" \# G" O|        |        |                                                            + ]# A4 i: h' o& ^: h
|   16   |     1  |  图像每像素存储占用位(bit)数                             - U0 D1 ?2 X) r- X, B! w
|        |        |                                             # n& Y9 \0 `- C# r$ _8 c
|        |        |                                                            # |& O' A6 ]- I; n2 [, z
|   17   |     1  |  图像描述符字节                                          
9 j8 M' S9 \0 ]* s' c$ D|        |        |  bits 3-0 - 每像素的属性位(bit)数                   5 _4 a% _9 I& f( R. G" E
|        |        |                                                        
5 `0 n- E8 S6 r  q3 I/ Q* w, Q. m|        |        |  bit 4    - 保留,必须为 0                               # i: l, ^% W- Z, i! S. t
|        |        |  bit 5    - 屏幕起始位置标志                           
0 F! P+ w5 ^" t! w. R/ C* {6 @|        |        |             0 = 原点在左下角                       
0 s7 L. p% r; ?1 D|        |        |             1 = 原点在左上角                         5 l8 K1 @5 x/ U' `/ i) ^0 f  ?5 `
|        |        |             truevision 图像必须为 0                        
0 D, J. S) T% F8 k|        |        |  bits 7-6 - 交叉数据存储标志                       
( W, }9 d( Q, ]6 v1 q  s+ G1 J5 e# E|        |        |             00 = 无交叉                                   
( F! \3 p" v1 [5 ]|        |        |             01 = 两路奇/偶交叉                        
# Y; p9 U5 P! J; M+ q  S|        |        |             10 = 四路交叉                               . L3 m, C6 {2 w. t/ Y. c% A" ^! N
|        |        |             11 = 保留- w. m( Y0 j; x6 T2 [* }4 b" j
|        |        |                                                            
3 L7 F& W: [2 b  e/ K|--------|--------|------------------------------------------------------------
5 b- `; ?1 P  B* H3 ?  A7 j|   18   | 可变   |  图像信息字段                                       
, o; t" o! w# |5 b8 Z9 v|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   1 _* L- d9 r  o3 _1 A" F" V  g" N
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以    + {0 s- D2 P  O7 ~) a$ t
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   " e! Q7 O+ D6 Z+ a9 f- O6 ~
|        |        |  之后
3 i7 _( A* c6 j|        |        |                                                         
, C1 D# Q& Z! R|--------|--------|------------------------------------------------------------
- k4 I7 W$ ]1 V; ]|  可变  |  可变  |  颜色表数据                                                2 n0 j- J8 c/ X: S8 j
|        |        |                                                            " _# T& L5 y3 I9 r4 p: a
|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小      
. F0 h. i! Y; M9 l# ||        |        |  和数据项数目决定(在前面相应的说明字段中给出)            
$ P) i0 n* q2 B+ \: F; R0 j|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit)   Y- R# o+ `2 e( g5 R
|        |        |  被认为是属性位。                           
$ [' f# C8 U% R' R4 E|        |        |                                                            $ [6 X( @, h) o
|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,. l, L+ Q7 U- a! d( l
|        |        |              字节 3 表示 RED,字节 4 表示属性           ' M' ?9 q/ Y% S+ d* o3 S
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               
# r# a; @1 G7 z" n|        |        |                                                            + G# z) g0 ?6 J6 Z
|        |        |  2 字节表项中,两个字节分解成如下形式:                 c- Q& _) q1 h" E" Q
|        |        |  arrrrrgg gggbbbbb                           4 a) [% Z2 Q/ H/ n1 X; {
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  9 ]! d8 l& f1 D' s5 O
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。) m3 [; U* {4 i
|        |        |                                                            
( |% R5 [! k5 R) \" T3 Q|--------|--------|------------------------------------------------------------, K+ L, O: v& f' ^/ i) S/ u$ {
| 可变   |  可变  |  图像数据域1 x! O' I/ F' t3 }7 G
|        |        |                                                            
+ l, J+ D7 ^8 |5 ^* R* x* z5 ?|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放
8 s2 Q( `7 l. R0 F|        |        |  在数据包中;有两中类型的数据包:run-length 数据包,/ ]4 v' ^3 ^9 Y5 S5 T4 p/ H8 W
|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,  D# v; J/ y& I, ]# H5 R9 {/ k
|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域
. z7 x* X) |+ ^6 Z- [% m1 @& E|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当- R, m% O. k% f
|        |        |  它为 0 时,表示未加工的数据包
0 q) G! J# `1 b* S) ~( f1 U|        |        |                                                            8 ^( s/ Z5 g- p. l* X
|        |        |  对于 run-length 数据包,头信息含义如下
; d" Y" K* H$ E  f2 [" c; Z|        |        |      __________________________________________________    3 z9 y( w, A- Y! n5 Y
|        |        |      | 1 bit |   7 位的重复记数减一. R/ V( w5 G! o/ A6 S
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |4 G; W( b/ r8 N1 c* u* F, @
|        |        |      |       |   的运行大小为 128,(译注:原文为     |, U1 A+ x+ ?5 G2 t
|        |        |      |       |   the largest run size)          |  . ^4 V0 m+ Y1 ]& B/ N$ o3 J0 w
|        |        |      |-------|----------------------------------------|
5 @- l$ @; e/ E( C6 {|        |        |      |   1   |  c     c     c     c     c     c    c  |
* R. d. k8 p+ W8 ?|        |        |      --------------------------------------------------" |* D! G1 B) Y$ j# ~$ K/ f1 c
|        |        |                                                        
- q$ ?1 t9 B; R* \8 l|        |        |  对于未加工数据包,头信息的含义如下' w( i: U6 k6 O  s  f6 P5 d/ e
|        |        |      __________________________________________________
1 a) u  Z; G0 V  k|        |        |      | 1 bit |   7 位的像素个数减一                   |
% J; i- p, l4 U  J* R4 `|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |6 ^3 b$ @+ L, |/ K# u
|        |        |      |       |   类型的一个数据包中像素个数不能大于   |
6 Q& V0 u% c3 a4 z4 o0 M" e7 I|        |        |      |       |   128                                  |
# ~+ s& H9 w* B- Q" {1 F|        |        |      |-------|----------------------------------------|: p% X5 E/ P) M0 o
|        |        |      |   0   |  n     n     n     n     n     n    n  |
% S. b% V0 c5 i! |4 C  }|        |        |      --------------------------------------------------
# M# m$ c" v" F* o|        |        |                                                        
7 t: g9 B3 s7 O' \3 X! {' `/ F|        |        |  对于 run-length 数据包而言,头信息之后是一个简单的( D4 p6 N: D, H) _& t$ j$ x' P8 Z% u
|        |        |  颜色索引,且假定该索引被重复头信息中低 7 位表示的次数% L" o& \( B4 }) I, Y1 U7 T
|        |        |  run-length 数据包也许会跨越扫描线
0 f( [% Q9 C& G+ r8 @: F1 e! r|        |        |  (扫描线起始于某行结束于下一行)  p4 U/ R# E* u
|        |        |                                                        
3 \, M4 I) e# L8 L* w* J/ O|        |        |  对于未加工的数据包,头信息之后是颜色索引(数值由头信息
$ F: M/ N* l( H: T6 H|        |        |  给出)该类型的数据包也可能跨越扫描线- l4 J7 l9 F1 E/ L/ g1 e
|        |        |                                                            
5 S1 y* R( i" d& \' Z--------------------------------------------------------------------------------
8 {* r7 B- j& a3 L- c' n! M
0 t9 Y! n& d! I% m7 I3 h
$ R( }; k$ Y. @, o# o  }0 R
4 A* q; ?* s) c1 l5 S) N9 }
8 ?' |) }1 @- |0 f--------------------------------------------------------------------------------# G6 [4 D) _/ K: c8 G0 g. a) N
|数据类型 10:run length 编码,rgb 图像
7 E; R1 e; t  w4 k- G|--------|--------|------------------------------------------------------------
& R; X% K  f5 x/ }. _4 t' S|   偏移 |   长度 |                         描述                              2 X* u" i/ S( j2 N% [+ n. ]
|--------|--------|------------------------------------------------------------4 \# Y0 y  x$ S' m3 N
|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               
" K5 p+ D5 w2 Z0 N" S|        |        |                                                            1 @9 t2 y# A9 z, o- `* o
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     
9 f! X4 j& x# G% l|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     1 G7 n) m6 \/ _5 T! E0 `" x
|        |        |  信息字段。    ! L$ ?: y: F: z7 D# q
|        |        |                                                            
0 _# N0 M1 z! j1 T/ C; `|--------|--------|------------------------------------------------------------
4 _* Q% i# T9 ]% o. v|    1   |     1  |  该字段的内容或者为 0 或者为 1;0 表示没有颜色表,1 表示5 ^6 E* T, B! S" b* b$ e
|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。& T7 l3 E* b# W
|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射# f/ T5 r& h6 w5 y& ^; b; _$ _  D
|        |        |        中的第一种颜色
: F2 R3 {+ B5 b- B( @% a|        |        |                                                            
. B0 g: l* M2 n9 |, [1 c: {|--------|--------|------------------------------------------------------------
( s: h9 x# Z8 ^6 t3 }/ t|    2   |     1  |  图像类型代码
; \+ F$ O7 A# I! a% ~6 P|        |        |          - x5 m3 ^# h. N
|        |        |  本类型该字段为二进制 10
9 X8 O/ z- ^1 O  w6 q|        |        |                        
- h% i& e2 U# R. M0 C! r|--------|--------|------------------------------------------------------------5 p2 U+ b6 O+ j8 c
|    3   |     5  |  颜色表规格
& |6 k+ A# f" I: n# v5 F: q|        |        |                                                         9 ?" U+ j  {9 m/ y
|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下
& [4 \* m  K# M5 `# P* r! s3 y|        |        |  0 w3 B) D; B5 h) j# h, }
|        |        |  9 N( i( H& G6 U# s7 p" _1 v
|    3   |     2  |  颜色表首址5 m8 @' `9 ]4 V$ P8 X' p
|        |        |  颜色表首元入口的整型(低位-高位)索引
( C0 ]" l6 V* y|        |        |                  
8 B9 n4 x  i+ r& t7 u|    5   |     2  |  颜色表的长度
4 t- p$ B6 x& I9 e: H6 ?|        |        |  颜色表的表项总数,整型(低位-高位)     
& T) s+ ]1 W4 p! p5 V, ||        |        |                                   , ~3 Y5 ^. ~+ y* D4 `
|    7   |     1  |  颜色表表项的位(bit)数
3 e4 W' C' N/ h1 n" S|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA0 h* d. `2 V# {( ?
|        |        |                                                            
9 l' s" K0 c  \( H) k# G  @7 A+ {|--------|--------|------------------------------------------------------------
8 A7 N( ?- e/ v- F; g) w|    8   |    10  |  图像规格                                               # H! M7 z9 o; s
|        |        |                                                            
" `( z9 s% A0 b( \1 g# Y  `  `8 ?|    8   |     2  |  图像 x 坐标起始位置                                       
9 r! L# H4 L6 I8 b: y; W7 F|        |        |  图像左下角 x 坐标的整型(低位-高位)值               
/ [: {, ^/ s( w. m+ Q) N) ?5 P$ t' l; n|        |        |                                                         5 K% e9 \1 f: x/ n5 t; `
|        |        |                                                            
4 ?- H4 m, H& {  d: ]|   10   |     2  |  图像 y 坐标起始位置                                       
+ i+ I6 t+ I# m; N7 I|        |        |  图像左下角 y 坐标的整型(低位-高位)值               
0 W, W+ i4 q# ^3 f7 m/ }& ~|        |        |                                                         . S% d9 i  I3 l& \& o6 ?/ |
|        |        |                                                            
  W% Q2 e, V" ~$ x9 M|   12   |     2  |  图像宽度                                                   0 O% n8 M# f; ?$ k
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           
' ~# b1 o- N/ V|        |        |                                                            - T- F# Q1 Z. w8 k: K7 F' L
|   14   |     2  |  图像高度                                                   
% i0 |# f6 ]1 h) B, I5 \9 Y|        |        |  以像素为单位,图像高度的整型(低位-高位)值               8 b6 A$ s5 _& Y* Q8 Y' _3 e
|        |        |                                                            # d7 Y$ x5 T9 a
|   16   |     1  |  图像每像素存储占用位(bit)数                             5 B' b* n' x' D" v' K* \
|        |        |                                             8 p3 ^; T( [! }
|        |        |                                                            
& \) H9 ^1 \; |6 V8 L|   17   |     1  |  图像描述符字节                                          
( u2 l; g. M! W1 l|        |        |  bits 3-0 - 每像素的属性位(bit)数                  
6 {7 ^( t1 i* \) b: v|        |        |                                                        , Y' W  k9 y* q  `  D
|        |        |  bit 4    - 保留,必须为 0                               $ N+ x( j/ [: q1 _& F7 Z, U1 f7 E
|        |        |  bit 5    - 屏幕起始位置标志                           0 ~6 r5 J- `8 b2 i+ m8 q1 [( L. k; U
|        |        |             0 = 原点在左下角                       & K& {! M, D3 U9 Y7 H! a
|        |        |             1 = 原点在左上角                        
0 r$ F( d! b& V* D|        |        |             truevision 图像必须为 0                        
" h4 H2 J6 Q) \# F8 W! X|        |        |  bits 7-6 - 交叉数据存储标志                       
8 y2 l/ @+ J" P9 y( t- |. e|        |        |             00 = 无交叉                                   * l8 P2 u. W" S; M; {. F
|        |        |             01 = 两路奇/偶交叉                        * n6 o1 E9 y) D. G. v) G# B1 }
|        |        |             10 = 四路交叉                              
- x' Z' t: J  j  k2 l/ w3 _( s|        |        |             11 = 保留                                   " o- n0 q9 @) R
|        |        |                                                            
0 T2 ~4 ]6 V2 K5 K9 G+ u|--------|--------|------------------------------------------------------------) Q9 G7 S$ E; ?: I9 D& h
|   18   | 可变   |  图像信息字段                                       
) E+ n, K3 R/ l' L$ {5 C$ T( }|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   ( d$ ~' |, J1 ]) y$ l
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
+ K8 c+ E4 F# l1 c5 U- G8 Z|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   $ `9 C  ~4 ]: b- r, y, j
|        |        |  之后0 {5 u6 O. L+ A" n1 A+ e4 b
|        |        |                                                            
/ q; s1 V7 s8 Z( m* t|--------|--------|------------------------------------------------------------
/ d7 o2 Q: k+ O0 v! c/ O" J|  可变  |  可变  |  颜色表数据                                                ; R+ _8 A" `/ x9 d9 F/ U# C/ I" f
|        |        |                                                
0 @: l. M( G- V6 p|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取
+ C9 P4 ^8 ?9 y4 c|        |        |  图像颜色表规格中描述了每项的字节数,为 2,3,4 之一- ?% g7 z) p6 }& R6 |) j9 R
|        |        |                                                            
; e$ U% t2 k1 W4 H% X; P; M|--------|--------|------------------------------------------------------------
) O. C- S9 V" h8 B, s" a% P| 可变   |  可变  |  图像数据域; `9 A( f+ D% A
|        |        |                                                            
! T* [1 K. X* l+ J|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放* w5 u) j" M" t2 \
|        |        |  在数据包中;有两中类型的数据包:run-length 数据包,
. E9 j8 P1 a7 k- E|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,' R; X8 S) Z8 B  N: F5 ]" g+ y
|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域
% I3 l# W/ H, Q9 |1 X|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当
- H  h& b% t8 G% N|        |        |  它为 0 时,表示未加工的数据包4 p+ J: ^* D( V4 N1 r+ ]
|        |        |                                                           
1 [& [/ ]8 l* A) E+ r) \|        |        |  对于 run-length 数据包,头信息含义如下
9 d2 J% z+ r+ x$ g1 [|        |        |      __________________________________________________      c! F% |$ O1 |; y7 A; W: S
|        |        |      | 1 bit |   7 位的重复记数减一
1 X) H  A$ I* D5 f* Z|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |
$ ~" C3 D8 Q: n8 p|        |        |      |       |   的运行大小为 128,(译注:原文为     |
. }* c- }3 z  w; U|        |        |      |       |   the largest run size)          |  
4 w0 ~7 f! G& e! I|        |        |      |-------|----------------------------------------|
9 X6 e% {- r6 P& C4 u. V) z4 c|        |        |      |   1   |  c     c     c     c     c     c    c  |( {- k8 w8 W) Z2 K" `' E& O
|        |        |      --------------------------------------------------" Y6 A0 Q% i: W) V% d/ k2 T) o$ r' Q
|        |        |                                                        
& ?  L: H: h1 w; h, x|        |        |  对于未加工数据包,头信息的含义如下. i7 Y$ L1 E9 Q. d  r4 X) l- m
|        |        |      __________________________________________________! ^$ B: T# n1 {7 j% b: b
|        |        |      | 1 bit |   7 位的像素个数减一                   |8 v& Y) T! K4 A4 e8 X
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |
- a- ?2 w, S! m2 v% R) r% U|        |        |      |       |   类型的一个数据包中像素个数不能大于   |4 q  u, N4 ?! O) A
|        |        |      |       |   128                                  |
* [/ T9 n$ K+ r! z' _9 S% s! K|        |        |      |-------|----------------------------------------|; S' G3 R, {  b. X" g
|        |        |      |   0   |  n     n     n     n     n     n    n  |! f6 O$ b( O! [
|        |        |      --------------------------------------------------5 A2 @7 o( d/ M) q# G! j
|        |        |                                                            3 E4 T% D5 O" w5 z- j8 s
|        |        |                                                            ' M$ e, q. d) X/ }! K
|        |        |  对于 run length 数据包,头信息之后是一个简单颜色值,7 a7 f& z' r# O* }
|        |        |  且假定该值重复的次数为头信息中记录的数
, l( i  i2 k# G' ~9 t; v& ^|        |        |  run-length 数据包也许会跨越扫描线
$ }3 [" R# ^2 |) d0 ~' r* v5 [|        |        |  (扫描线起始于某行结束于下一行)8 x7 `5 f3 L3 m0 [1 Q" B
|        |        |                                                      
5 {2 C% R) F8 @2 }9 T  X|        |        |  对于未加工数据包,头信息之后是颜色值(数目由头信息指出)) G7 B+ C# e  ~  X* h2 [9 v
|        |        |  
) \- w4 T& \3 Q! T2 c|        |        |                                                
# N" H9 F8 w7 y$ B. h7 t|        |        |  颜色表项自身有 2-字节,3-字节或 4-字节几种大小(分别. A$ d1 B1 ?! c5 i: R* }
|        |        |  对应 TGA 16,TGA 24 和 TGA 32)形式如下:
/ k8 h  }' e" {9 B+ F( C|        |        |  
& _" `! z& \* I$ s4 E) y& X|        |        |            3 T3 E! }- D5 m( Y7 |! `$ V4 J
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               ) O- U& j% n: A1 b8 F: L7 U
|        |        |                                                            
" Z* X$ y7 L& L. p7 ~; [5 _|        |        |  2 字节表项中,两个字节分解成如下形式:               : H3 g+ T1 A. Q/ d7 Z: _. \4 t
|        |        |  arrrrrgg gggbbbbb                           
2 _( W8 }6 _6 O+ w! Q7 z9 Z3 h|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
+ T( v: B" ]) H' n|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位
, p& H- S9 n' L# E$ t  ?2 {' i|        |        |                                                         
0 [* c+ Q; K9 k|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个
5 K4 }# G; t) u* M6 f|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象1 b0 `$ U& z& G7 [7 Q' [- t5 U
|        |        |  TGA 32 类型的图像那样存储
+ K$ k' K$ K. x9 A( @4 K; @% h|        |        |                                                            
2 t4 z( |- d  C* O$ l7 G3 o, A/ o--------------------------------------------------------------------------------7 e. g8 z- P! b! d

; `; |3 W0 a+ Y5 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日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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