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

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

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

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

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

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

原文- Q+ C6 Y7 e0 a) Z3 y. p+ `
http://dev.gameres.com/Program/Visual/Other/TGAFormat.htm! C: c. o9 }' R, ^  Z
  
. G5 g1 d- O# s# u# X  I根据david mcduffe编写的TGA文件格式资料翻译而成' M, x7 J" A8 S1 W, F
 2 \3 o4 j8 h; C9 B2 H1 Y, G8 j
本文档是为满足许多对 TGA 图像格式的了解需要而创建的。本文摘录自truevision 技术指南的附录 C,如果1 A5 B: h6 `' }+ `# K5 r+ y
需要更进一步的信息,请致信以下地址:4 g3 V1 ~" c/ [9 j
* t, i. o) e9 E* [
           at&t
% z( B; }1 O9 J6 [/ |           electronic photography and imaging center
; |+ L5 [& E$ T( m5 p! L3 S           2002 wellesley ave.
- o/ u% V6 O! J* Z# y! ~           indianapolis, in 42619
) w8 r6 h0 [& D2 J本文档不求全面,但力求准确。如果你发现了任何拼写错误或内容错误,请告诉我,( david mcduffe, ) |$ D1 u2 j$ b5 e9 a
75530,2626 ),我将改正这些错误,谢谢。1 X; v; o% y7 F, |3 `

2 ~8 t# D# L( `( I不全面的原因是 TGA 包含了超过六种图像文件格式,而其中的几种较为常用。 我选择了我现在使用的格式并
: q( ^) S3 s: L5 z# k在本文中加以详解。 如果你需要本文中没有包含的格式说明,你可以与你的 truevision 代理商联系。4 x) I$ L8 j. i5 a3 U
对所有的 TGA 格式的文件而言,其第三字节(二进制整数)用来区别各种不同的 TGA 文件。下面列出了该字3 _! k5 ]: C% e8 P8 J0 o
节表明的对应文件类型:
' h1 J- J4 A! ?) Z    0  -  文件中没有图像数据
- M& g( }5 Z( \& d: T/ ?    1  -  未压缩的,颜色表图像
/ c+ S! G+ X" _" i    2  -  未压缩的,rgb 图像
6 ^' |9 ~' c( Y: M* ^. c    3  -  未压缩的,黑白图像, w( Q; O: p  \$ K' v) H
    9  -  runlength 编码的颜色表图像
* P- i: e! O. O4 Q2 u6 L) ~, o    10 -  runlength 编码的 rgb 图像" T* f4 O5 l5 X5 P# a. ]. d
    11 -  压缩的,黑白图像
0 u: K1 Z6 L3 l$ O    32 -  使用 huffman,delta 和 runlength 编码的颜色表图像9 V9 `8 o- F5 Q! J8 O: |( r" o4 `
    33 -  使用 huffman,delta 和 runlength 编码的颜色映射图像,4 趟四叉树类型处理。! t: }1 L# ]3 o" u3 C7 I
    本文仅仅描述对应 1,2,9 和 10 的文件格式。9 w5 s  l$ C3 @8 I0 T

* o1 G. y" u0 i( A" g% L' ]4 X--------------------------------------------------------------------------------- q. i$ _0 |) ^  O
|数据类型 1: 颜色表(color-mapped)图像" @! q: s, z: R
|--------|--------|------------------------------------------------------------
) b% z* A2 t% }1 S& V- ||  偏移  |  长度  |                            描述
6 Z, k( d3 q" k0 x& N# j* _|--------|--------|------------------------------------------------------------
, p) W, V+ D& F7 G; A# J* Y, h& d|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               + E: z1 ?' F9 `( |0 j
|        |        |                                                            
+ B1 e) E$ s$ Z, \6 f|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     
  I/ w) m# v) b- G  m9 G( i. j|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     & p7 F+ T; `4 m( ?
|        |        |  信息字段。                                   
7 {0 _* u8 c$ r" L+ ~, ]6 g|        |        |                                         7 j9 D; J5 s5 o/ b# x
|        |        |                                                            4 @8 j: z3 U0 Y6 b
|--------|--------|------------------------------------------------------------1 w" o3 [: j$ ]6 o1 \$ y
|    1   |     1  |  颜色表的类型                                           6 s& H  A* J0 o' l) \/ P
|        |        |                                                            : Q6 f+ Z+ Z7 n* c/ s! ]2 U
|        |        |  该字段为表示对应格式 1 的图像而包含一个二进制 1           ' p6 M6 s, P& {% o$ x$ o
|        |        |                                                            
! Q3 O3 |! |- T5 H|--------|--------|------------------------------------------------------------
2 _  a6 e" ?5 f; F- v, W|    2   |     1  |  图像类型码                                            
. x& P% s% F# C( r|        |        |                                                            
9 j- @- @+ i) N) }* I. A|        |        |  该字段总为 1 , 这也是此类型为格式 1 的原因               
* t" c  j9 q; p$ E2 t- Y|        |        |                                                            
' _$ E3 o/ m3 P( ^|--------|--------|------------------------------------------------------------
( L4 y+ \" A1 s8 L+ h9 {$ a|    3   |     5  |  颜色表规格                                       1 ^$ y% X7 t# D" B
|        |        |                                            
) T2 {( o' U2 H, x7 b* V; x|    3   |     2  |  颜色表首址                                                
& e. z7 ~+ V& y/ V2 d|        |        |  颜色表首元表项的整型(低位-高位)索引                ! R* O( a) J% }* W0 A
|        |        |                                                            
9 N1 J- Z5 U8 o|    5   |     2  |  颜色表的长度                                          
5 P* ?" d5 @2 p! H- i/ H; U|        |        |  颜色表的表项总数,整型(低位-高位)                  
5 ], X% l! b( o; I|        |        |                                                            5 p+ c* [# z7 R! l- K; i# ^
|    7   |     1  |  颜色表表项的位(bit)数                                   ( z( R  m& d/ }$ f6 h- J5 G1 @! z
|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA
3 Y8 J0 b8 e( x& u# A! y|        |        |                                    
1 l6 j/ _& ~7 R- F2 e. Q|        |        |                                                            
# l0 w+ J$ D' S|--------|--------|------------------------------------------------------------
0 Y1 e. X# D- L|    8   |    10  |  图像规格                                               
" R7 _0 d3 J& K8 T3 c3 ^|        |        |                                                            * r$ q* J: V/ j! R% A$ @, @2 o
|    8   |     2  |  图像 x 坐标起始位置                                       - ?2 {. X8 Q# G1 q5 I7 l( t
|        |        |  图像左下角 x 坐标的整型(低位-高位)值               ; o* @4 `3 f/ v% U; P/ N7 x
|        |        |                                                         / m# D( o  p* N- ]& f
|        |        |                                                            
6 j9 ]5 A: i9 ~' v# y6 t|   10   |     2  |  图像 y 坐标起始位置                                       1 H$ [. K* d& y$ `
|        |        |  图像左下角 y 坐标的整型(低位-高位)值               ! h! p: e: B5 t. X7 D6 `
|        |        |                                                         $ }+ m! @" l* X; O. E% Y
|        |        |                                                            
) E# y# Y  z) C* G. b|   12   |     2  |  图像宽度                                                   ) n3 _- y# `4 C& @  {' u# z
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           , K* Y3 ?; Z3 ~% e" \( V
|        |        |                                                            
( S) H6 l  F5 ?, p9 V2 I4 O|   14   |     2  |  图像高度                                                   
- j- o( V* B4 u0 I|        |        |  以像素为单位,图像高度的整型(低位-高位)值               0 e4 R5 W' ]+ a% O
|        |        |                                                            
# B7 u  E* B4 U2 l|   16   |     1  |  图像每像素存储占用位(bit)数                             
; f8 n1 M$ [4 Z6 s! p- I% O, R  _|        |        |                                             
- x- q! o- |; Q( X: U|        |        |                                                            
" @6 s; m* r, Y# C' \|   17   |     1  |  图像描述符字节                                           # k+ P( ]9 C. I( `7 R- Z
|        |        |  bits 3-0 - 每像素的属性位(bit)数                  
9 t/ `6 h0 o, d. J; D- Y|        |        |                                                        8 x8 q5 O  U' I0 _- e7 C" A
|        |        |  bit 4    - 保留,必须为 0                              
2 E2 ~/ H6 T( k: w* h: |- f+ @) e|        |        |  bit 5    - 屏幕起始位置标志                           2 R- Q8 ~: o) R1 H$ n
|        |        |             0 = 原点在左下角                       
, l( [3 J0 F5 ~|        |        |             1 = 原点在左上角                        
( ~( R1 ~% N; i5 {/ N0 \|        |        |             truevision 图像必须为 0                        
' n# D0 X3 n. Y; O8 s& ^|        |        |  bits 7-6 - 交叉数据存储标志                       
* P4 z* X6 P0 c) e|        |        |             00 = 无交叉                                   1 a+ j( p: V& O* S" _
|        |        |             01 = 两路奇/偶交叉                        
( m" Q7 F) T( w( C6 p# ~! O& [9 q/ ~3 r|        |        |             10 = 四路交叉                              
3 H/ l4 B0 f. v. f|        |        |             11 = 保留                                   
! X) c4 z# f4 B* @0 U|        |        |  这一项应该设为 0,不要问我为什么                   , t2 \$ z. z) k; H
|        |        |                                                            & \- j  i" d3 J6 V6 A3 Q% ]
|--------|--------|------------------------------------------------------------1 b7 m$ m0 L- [7 R, P9 V
|   18   |  可变  |  图像信息字段                                       
  W. U& p7 ], j4 L2 q|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   
* N& N. W  n6 a6 b! b6 k5 v- T7 l|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
  T: j( v' T2 x+ k|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   ; [$ [: Y0 P$ _2 y" l( |& b
|        |        |  之后                              
- e8 g/ A& C5 ^+ R; K3 @|        |        |                                    
1 p9 U/ |! [% j1 s. K7 i: |* H1 V|        |        |                                                            
+ T$ A- c( G# }|--------|--------|------------------------------------------------------------8 J3 |3 R1 l8 I9 ~  R" v* C4 M) b
|  可变  |  可变  |  颜色表数据                                                
/ B# A5 }; ~& W7 q|        |        |                                                            
, m: p) g& Z& C+ W9 [& d- D|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小      / Y4 \# H# c3 q: `/ Y( Q
|        |        |  和数据项数目决定(在前面相应的说明字段中给出)            % f, I  z0 a5 {* _! @
|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit)
; p0 _( s9 }5 B|        |        |  被认为是属性位。                           
2 ~+ c; x' w/ ]- F# t: R|        |        |                                                            ( l: f6 ?& |7 s1 l
|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,
# g$ D3 J) F; y0 M& e|        |        |              字节 3 表示 RED,字节 4 表示属性           
& @8 C. @# O6 I" p- V; z|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               1 D- B7 Z3 E0 x. s% }% n
|        |        |                                                            
- ]6 [9 |6 q/ q|        |        |  2 字节表项中,两个字节分解成如下形式:               / Y7 {. D6 H: S' G: A# a7 V
|        |        |  arrrrrgg gggbbbbb                           ' R2 a: n1 D7 f( c- U
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  3 _4 u/ T' X- y: G
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。  1 p/ @; C: G0 O0 x
|        |        |                                                            & h6 S' K" o6 w- o- ~, ^+ `
|--------|--------|------------------------------------------------------------* M0 t$ G/ `9 ~6 p: m- L
|  可变  |  可变  |  图像数据字段                           " U+ n% W9 _5 a$ H
|        |        |                                                            
2 E0 }+ `; B2 S|        |        |  该字段给出了 (高度)x(宽度)个颜色表项索引,每个索引   
! F- N; n# N2 w" b( ]8 K" ?|        |        |  以整数个字节的形式存储(典型的例子如 1 或 2 个字节)      
" w1 K1 Q1 e6 k( ~|        |        |  所有的数据都没有符号,对于 2-字节表项而言,低位字节是     
- b) h+ o$ P# y7 h4 H9 l$ y! T|        |        |  先存储的。                              
( J6 j. Q/ z# a& D3 f& \|        |        |                                                            ) ]  j$ o. b+ y  `/ Q& \1 S$ q
-------------------------------------------------------------------------------+ U. H6 Z, m; F2 |0 ?* f+ L

. a, [6 M- V4 I8 }) R+ z1 L+ h+ L- P5 r+ a( K2 v9 s
( H2 n  I# f( i7 w
--------------------------------------------------------------------------------4 N; d; H6 z* X+ Z" ?
|数据类型 2: 无颜色表 rgb 图像                                 
; n7 P  X' o$ J0 b|--------|--------|------------------------------------------------------------  A0 X3 M0 Z6 q4 T8 }$ @
|   偏移 |   长度 |                         描述                              
' p% {- m7 C/ T! t  }# M3 \|--------|--------|----------------------------------------------------------7 w2 |$ t9 o& c8 y0 t5 p
|    0   |     1  |  图像信息字段( 见本子表的后面 )的字符数
! G; Z) S2 i8 }) p6 h( A* D3 K|        |        |                                          ' Y  I  s# W. g0 U. D
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度. `) z3 K+ e  W& L% n* m8 z
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的
; f/ i9 u( Q  N5 u3 u( o0 i1 L7 ^, ?|        |        |  信息字段。
0 i" B) v. e4 o+ G0 e  H|        |        |$ n' N! @( }  ^1 t
|--------|--------|------------------------------------------------------------' F, h1 O" v; [
|    1   |     1  |  颜色表类型
9 V2 D  |( r* q2 d/ S) W/ p|        |        |                                                
  w* f9 D+ I8 b( g; P. n|        |        |  该字段的内容或者为 0 或者为 1;0 表示没有颜色表,1 表示
& L# J; P1 ~0 N8 R2 |2 ^0 e|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。
# G! z0 |: i4 Z. M7 z3 @|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射
' u3 I, f' s* y! p; b1 ~& v|        |        |        中的第一种颜色6 q1 M2 v" G" D6 {5 @- K! @$ h, O$ s
|        |        |
% \% G1 U: |" r  G4 l4 H4 B* b6 O|--------|--------|------------------------------------------------------------
# t+ c6 C- l: L6 |6 K9 {|    2   |     1  |  图像类型码
" @; `. ^. R' `+ _4 Q# ?( o|        |        |                                                     4 E$ D. W- n# _/ K* G
|        |        |  该字段总为 2 , 这也是此类型为格式 2 的原因   
% B- N! x/ c- x0 C" ]1 ?6 s|        |        |  + |& N- [: c' [& t8 q8 \
|--------|--------|------------------------------------------------------------
  G+ F* p! Q$ s% ?3 ^|    3   |     5  |  颜色表规格
7 W# ^1 C) V. o# e- ?|        |        |                                                         * D# E! q. `4 s& v) z
|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下! a3 I& N( n8 W5 A- H" |
|        |        |  4 O+ P6 L$ s6 g4 N7 T- r* C
|    3   |     2  |  颜色表首址
% [# u0 R% P$ L3 r3 ~6 |9 {# k|        |        |  颜色表首元入口的整型(低位-高位)索引  ~4 \& p4 h. J; A  ]8 O* ~
|        |        |                  7 a( w; P3 e, [. j+ |6 v
|    5   |     2  |  颜色表的长度! J( m* Q8 \  _, u7 d% B
|        |        |  颜色表的表项总数,整型(低位-高位)     
% p. d  v0 F' G  G6 g2 H* x' H8 Q' C$ R|        |        |                                   + A) ]4 K0 \0 ?
|    7   |     1  |  颜色表表项的位(bit)数( d6 l! n$ q8 l9 y( A- b/ p- n. K
|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA- {) K, g! D& P. u/ x
|        |        |  
! ^9 A% K5 A5 t. |; N|        |        |                                                           
: R/ c2 i9 Y9 T& P6 r|--------|--------|------------------------------------------------------------3 T9 t/ C: W/ j" A, v- f
|    8   |    10  |  图像规格
6 Y. u: r- ?2 }& I: q- c|        |        |                             
# x1 U) |! I2 b/ Y|    8   |     2  |  图像 x 坐标起始位置       . L9 Q  r. _6 t( {
|        |        |  图像左下角 x 坐标的整型(低位-高位)值
3 w6 s3 U* s& W- l" Y1 @% E+ F|        |        |  ! |" V4 G" q3 c( I
|        |        |
2 x( P& z$ J, k; X|   10   |     2  |  图像 y 坐标起始位置
8 b+ Q. m/ w) }: g* `|        |        |  图像左下角 y 坐标的整型(低位-高位)值% z8 j2 K1 f* _1 D. `, |* r
|        |        |  . j1 z$ W8 e5 _. @. g
|        |        |
8 S  P9 c8 _' ]) n- g$ P|   12   |     2  |  图像宽度
& C$ J. c1 T& N. ~& v( Q+ K|        |        |  以像素为单位,图像宽度的整型(低位-高位)值3 L, a$ v& H" e& h
|        |        |
, W: U" l! q& A|   14   |     2  |  图像高度8 }& l* N) U8 D; l7 L$ \* o
|        |        |  以像素为单位,图像高度的整型(低位-高位)值" G: A% {/ A0 S: j* k
|        |        |
" w. [+ y. r/ T0 ~7 P  Q- L! T|   16   |     1  |  图像每像素存储占用位(bit)数
( m: c" t  n" i* V$ `  h|        |        |  它的值为16,24 或 32 等等决定了该图像是 TGA 16,TGA24
7 P& m3 q0 |. }  R2 m|        |        |  TGA 32 等等6 Q& V. q' A1 t/ ?! \
|        |        |
' @* @: I6 n6 r2 k  V|   17   |     1  |  图像描述符字节
9 T7 m0 d/ V3 E1 ~) c|        |        |  bits 3-0 - 每像素对应的属性位的位数;对于     TGA 16,: c" ^. O" Q2 V
|        |        |             该值为 0 或 1,对于 TGA 24,该值为 0,
: ]: K' N& a% f' x7 }$ E|        |        |             对于 TGA 32,该值为 89 p+ N$ @( M/ }6 J
|        |        |            
" O' Y8 G1 Y" s7 [|        |        |  bit 4    - 保留,必须为 0
8 Z9 U) N, P; G& A' J2 w4 t, [|        |        |  bit 5    - 屏幕起始位置标志& M  I, j1 o* Z, s- J" E( ]9 I
|        |        |             0 = 原点在左下角
/ `2 W+ u  E  X* z$ q|        |        |             1 = 原点在左上角4 G) X$ U3 E! N' O  y6 t/ u
|        |        |             对于 truevision 图像必须为 0
7 Q2 i9 W# z7 e  e/ P2 v1 x|        |        |  bits 7-6 - 交叉数据存储标志; Y. ?7 y6 |1 ~  A9 H8 t
|        |        |             00 = 无交叉                                   " e3 z9 K7 N9 N; V* }
|        |        |             01 = 两路奇/偶交叉                        
4 P' E' ]- t& X; f/ k& i- j. k, y  \|        |        |             10 = 四路交叉                               . h0 R1 S; a. L
|        |        |             11 = 保留
. K5 o& a& d% J# R, l, I6 s|        |        |                                                            
: R9 @) ]+ ~1 h" i  Q" {|--------|--------|------------------------------------------------------------  y  h' u4 D+ X  o8 O* Y1 J
|   18   | 可变   |  图像信息字段                                       
7 o+ f! H  k7 O* {+ f: V|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   
1 c7 {% F7 u5 _; x3 c  O- V6 ~9 j|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以      t9 t! b) W0 L! M0 j
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   & d) V1 I' J5 Q4 X: K. c% [
|        |        |  之后                               ! C8 i+ [3 W* J: H
|        |        |                                                            
2 I9 H2 d6 ?1 H5 u/ P( P|--------|--------|------------------------------------------------------------
$ @6 S8 N! ?0 `4 m|  可变  |  可变  |  颜色表数据                                                ) N' r1 Y+ [) W  U# u# n
|        |        |                                                
8 g/ D* |3 R5 i+ m|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取6 g  |8 W9 i* Y
|        |        |  图像颜色表规格中描述了每项的字节数,为 2,3,4 之一5 ]$ ~4 j. @  J7 d
|        |        |  5 {, L! W- s" n; Z: V6 @% j% a2 Q
|        |        |  % @3 t5 N8 l. n3 p$ k" T% s0 Q
|        |        |  
( V- i9 }2 i7 _|        |        |  
% v2 a' G* W! s8 m|--------|--------|------------------------------------------------------------5 C2 q. R) R) }5 a( [( g
|  可变  |  可变  |  图像数据域& v7 ]! z" H+ i5 `) s+ k5 z
|        |        |                                                   
$ d% S2 ?4 E( D# e6 V4 s|        |        |  这里存储了(宽度)x(高度)个像素,每个像素中的 rgb 色值
9 v7 N( {, J$ u! r, W" `. j|        |        |  该色值包含整数个字节
) H7 b# y. ~4 y( U|        |        |  ) T% _" _( }" _8 V0 D9 L
|        |        |                                                           7 I: k0 z$ ]6 Z! F
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               ; s1 [7 C8 H6 C4 O$ H/ i
|        |        |                                                            1 A6 Z0 m: F$ Y- ?/ o1 H- j
|        |        |  2 字节表项中,两个字节分解成如下形式:               
5 t, g/ V" M. m, R$ S|        |        |  arrrrrgg gggbbbbb                           $ [) O7 t9 ^/ f
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  / B$ J  G( z( I3 m+ e6 n
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位
! N! U# ]+ Q; S|        |        |                                                         
! {$ a9 R7 ~: V! G" K$ R6 i|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个
) Q. Z9 O0 h8 K6 ]|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象* P) i  b$ W7 ]) L: [3 p, z5 e+ ], s  l
|        |        |  TGA 32 类型的图像那样存储+ S7 }# e3 J8 s) b) \& z
|        |        |  ' r" w7 T( `: p8 N/ l
|        |        |                                                         
! M* t; i- t  C: I  f--------------------------------------------------------------------------------, Q! Q3 {/ C* m1 C0 C8 I
7 [+ M" _3 _4 w' l1 T

% T' F& S% F% G, p
4 m8 G. y7 o$ A( H, O" L+ r, E; g4 _/ j3 ~5 N9 _& Q0 @# T6 E# ^
--------------------------------------------------------------------------------
6 C, \# [7 s, ?5 u& d# g" n. q|数据类型 9:  runlength 编码,带颜色表的图像2 P# d1 v1 R% ~9 R/ D/ w
|--------|--------|------------------------------------------------------------5 G. Q; L% b5 t; j4 R
|  偏移  |  长度  |                            描述3 G1 l5 D  a( r/ Q
|--------|--------|------------------------------------------------------------
/ Y: E9 y& S1 e; ^& w3 q2 j|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               9 C7 O) h% h' c, a( N2 x
|        |        |                                                            
, K# ^& L; J2 i9 e1 a) D|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     * Q% R5 B5 o0 t# c7 K
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     9 K: @% }  Q$ A6 n
|        |        |  信息字段。   
1 ^# l# Z0 r$ f. w! o|        |        |                                                            8 s+ W2 N% a0 v$ ]" b
|--------|--------|------------------------------------------------------------
3 u$ s7 G, g0 ~7 @  s|    1   |     1  |  颜色表的类型                                           1 b  ^' o( ^/ e; G% k7 {  u
|        |        |                                                            
/ s! m  U& U1 @4 M|        |        |  该字段为表示对应带颜色表的图像而总为 1
6 w& U9 Q- _& \5 j9 P|        |        |                                                            4 ~0 y: M' \2 C% f
|--------|--------|------------------------------------------------------------8 h, V1 P/ F1 B) r0 Y6 N  t/ m
|    2   |     1  |  图像类型码
: X0 u. f- `2 o" t- z1 ]|        |        |                                                            
: v) `  @* F' U  k4 {1 E3 p9 n, y! e|        |        |  本类型该字段为二进制 9$ I- m) P7 |9 h* w  W  Y! [
|        |        |                                                            
  g( `) _% k( V- X2 @& h+ S; o|--------|--------|------------------------------------------------------------' @+ F+ U9 R7 B' [. {' x
|    3   |     5  |  颜色表规格  W  |% W% u. e9 N
|        |        |                                                         
% h* x! A# ?& b9 v+ _+ q6 [2 {! ^|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下
8 T6 w' L0 Y. J+ T9 K0 ~' ~|        |        |    F$ d5 @2 ^& j, j% I8 t# o: \$ P
|        |        |  2 j& u0 O* J6 A* E
|    3   |     2  |  颜色表首址
- Q5 l7 a+ G4 ?$ G& S|        |        |  颜色表首元入口的整型(低位-高位)索引; I: B, ~/ \+ ^+ X5 r
|        |        |                  
9 Z3 j: D' L3 J, z4 r6 y* U|    5   |     2  |  颜色表的长度. B6 z7 T8 Z0 J+ ?
|        |        |  颜色表的表项总数,整型(低位-高位)     
1 i6 @1 U/ {7 c) n|        |        |                                   
4 f6 I/ K5 f9 E) H|    7   |     1  |  颜色表表项的位(bit)数
: {$ t! `8 N4 T2 Q0 |1 |" J|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA5 L' a$ {6 `! ]) D: q1 D
|        |        |                                                           
( X; K. m5 y* Y4 M|--------|--------|------------------------------------------------------------/ o; Z+ k  l; q% m
|    8   |    10  |  图像规格                                               : t% v6 l: p9 _% ^/ ~/ y) }2 ]
|        |        |                                                              P$ X" w: `% q( q, j
|    8   |     2  |  图像 x 坐标起始位置                                       
, I$ Q, M6 ^7 X% D2 Z- _1 r|        |        |  图像左下角 x 坐标的整型(低位-高位)值               
- I" X! }1 R( t4 F4 ^' N|        |        |                                                         
2 a% A$ l" q" E7 ||        |        |                                                            
' c' i; k4 q! }) ]|   10   |     2  |  图像 y 坐标起始位置                                       
: [$ C6 X! K3 D' D2 d- ?, f6 k! \, ~|        |        |  图像左下角 y 坐标的整型(低位-高位)值               
9 [9 d2 x. }$ a' z|        |        |                                                         9 Z, a0 W$ A; y3 _- U% H
|        |        |                                                            
6 x$ c8 r$ T$ Z5 I0 R+ {; s|   12   |     2  |  图像宽度                                                   
$ C3 l) j, h+ B% s|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           
4 z' ~+ ], n' v8 t8 u: ^& a1 q4 E|        |        |                                                            
+ ]) v( \' ^/ D+ f! y4 a|   14   |     2  |  图像高度                                                   8 q4 A6 f3 \4 x2 w# b+ ^: N! ^
|        |        |  以像素为单位,图像高度的整型(低位-高位)值               
- l; `9 M9 `( ~2 q|        |        |                                                            
$ c% O5 p: F# K/ k7 D& w' V/ l& b|   16   |     1  |  图像每像素存储占用位(bit)数                             
) h  ?: }- V# z" g" P/ G6 c|        |        |                                             
! \* m4 T& P7 n' z* J! q' V+ {|        |        |                                                            
3 x; t8 U4 [6 W5 Q|   17   |     1  |  图像描述符字节                                          
, p* L2 D' H( D8 T2 T4 e|        |        |  bits 3-0 - 每像素的属性位(bit)数                   . z1 V; y: J4 @$ F2 B( J( p
|        |        |                                                        
4 G2 S  g$ C' J; s/ [( G|        |        |  bit 4    - 保留,必须为 0                              
4 W6 _8 y5 L. l; V|        |        |  bit 5    - 屏幕起始位置标志                           + A6 H- w0 s$ G5 s
|        |        |             0 = 原点在左下角                       
# ]" a- w  o% \2 H, J6 f|        |        |             1 = 原点在左上角                        
# `7 t- z( y$ x* \% e6 M: _& E|        |        |             truevision 图像必须为 0                         - ~% ?, ]' C9 }: k: R, i+ f
|        |        |  bits 7-6 - 交叉数据存储标志                       
4 L/ j( ]- B- X, m7 q|        |        |             00 = 无交叉                                   4 p" S8 w6 i- U; P
|        |        |             01 = 两路奇/偶交叉                        % V" L  G6 A1 [  L" m
|        |        |             10 = 四路交叉                              
) J2 D# {3 B, P|        |        |             11 = 保留
9 e3 f9 d" e4 P, }. a: Z|        |        |                                                            
. ]8 ]5 g9 J+ _  _% l+ \|--------|--------|------------------------------------------------------------8 o  J  Z( _- A/ j: o; O* [
|   18   | 可变   |  图像信息字段                                       
7 @0 Q# D  j2 \9 n$ k/ [6 w|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   4 o, K7 L* z& {' e5 K
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以    6 {# I. |& w7 o8 S* N7 u, K
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   3 X! s0 b2 x" [1 ^8 j4 |+ E
|        |        |  之后% q* o$ H4 b$ K& q' Y" k# [
|        |        |                                                         
1 G5 H8 m7 g6 H. }1 P|--------|--------|------------------------------------------------------------
) E- ]2 x) C% |1 l9 {7 W$ F|  可变  |  可变  |  颜色表数据                                                
2 L& K. O# t& S) r% M|        |        |                                                            
) N2 N, ?: H/ ^|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小      & }% H0 E, z' t6 [# ]
|        |        |  和数据项数目决定(在前面相应的说明字段中给出)            0 O0 x( [& O4 e8 M- h
|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit) 8 h0 ^; C' l" z% ]
|        |        |  被认为是属性位。                           
( R3 `% ]# X) H/ E. U# Y|        |        |                                                            " \2 w4 o1 S% c( @# J- E6 ^: b0 H
|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,- D2 X6 {% E6 |6 k& G6 H* n
|        |        |              字节 3 表示 RED,字节 4 表示属性           , ]# x& z1 k" M0 Y; y
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               7 m! ~) Q6 |2 @, ]; ~; ?/ S" m9 q( P
|        |        |                                                            
- N. L5 A/ H) I+ V: ^, Q4 `& t3 v|        |        |  2 字节表项中,两个字节分解成如下形式:               6 ]$ ]5 L' s: A4 B; u1 W  h, Q$ o; e
|        |        |  arrrrrgg gggbbbbb                           " G% i! o: b3 S: b) Q# V0 H
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
/ Z$ v* J" R0 s0 |- j% f|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。! K- c8 I7 T+ X) f- B( `# x: @
|        |        |                                                            
/ H) h1 H1 v, u|--------|--------|------------------------------------------------------------
; M: ~6 e5 {3 Y9 Z  C| 可变   |  可变  |  图像数据域
5 t2 i' I! P7 G2 v; n7 o5 r! B3 z|        |        |                                                            8 p( J( x+ ?  y1 X# s4 `
|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放( ]8 o7 G6 Y* T6 Q8 n1 f$ N/ c8 W
|        |        |  在数据包中;有两中类型的数据包:run-length 数据包,
- Y& G) Y) `4 u, g) y4 J8 v|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,+ F. |$ k3 G: }" W' r# w4 B
|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域
4 `& d# K! K! n7 `, q% x- @|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当2 W/ b! E4 T2 W! q
|        |        |  它为 0 时,表示未加工的数据包
4 y: e8 }; Z* h& ^$ {: }9 ~|        |        |                                                            
" q, W% M5 J6 m$ _|        |        |  对于 run-length 数据包,头信息含义如下
; }  B7 l! @+ W3 t  I, t, v|        |        |      __________________________________________________    6 W# R6 M$ `* o# m+ F; [1 ~
|        |        |      | 1 bit |   7 位的重复记数减一  e; Y7 O* P$ X- H, b
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |/ z/ {3 y/ d4 s6 Z" X8 K
|        |        |      |       |   的运行大小为 128,(译注:原文为     |
' p- L" R& S4 Q|        |        |      |       |   the largest run size)          |  
; F! W1 u  R/ l7 J. ~: v|        |        |      |-------|----------------------------------------|
+ K% m. V( |" h3 [7 s) Q|        |        |      |   1   |  c     c     c     c     c     c    c  |5 M7 e/ e' f/ Y8 q2 s0 `
|        |        |      --------------------------------------------------
7 S! y+ E4 k6 S& W: d3 R( M|        |        |                                                        ; k9 _/ V& b' k$ a
|        |        |  对于未加工数据包,头信息的含义如下
3 {' ~5 _4 t$ [9 L6 X: m, x|        |        |      __________________________________________________
3 I, P9 Q& Z2 w8 A, r|        |        |      | 1 bit |   7 位的像素个数减一                   |, c6 I; J3 p# S' j1 v2 c
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |
' m9 A2 N1 |% p) D$ a9 n" {|        |        |      |       |   类型的一个数据包中像素个数不能大于   |
8 V% {+ C! I1 [& \  v  _" ||        |        |      |       |   128                                  |0 d0 ^3 A- M! s/ s% W0 f
|        |        |      |-------|----------------------------------------|
6 k: i. w. ]5 e" ~1 `|        |        |      |   0   |  n     n     n     n     n     n    n  |
- E: A: N& L' K* X& B% F4 U( E|        |        |      --------------------------------------------------
7 L+ {9 f# l& O5 E|        |        |                                                        4 L) c6 M, S% m" W
|        |        |  对于 run-length 数据包而言,头信息之后是一个简单的
! @. z% j- ?: h|        |        |  颜色索引,且假定该索引被重复头信息中低 7 位表示的次数: Z1 z3 l$ U/ g6 U% ]/ g# E
|        |        |  run-length 数据包也许会跨越扫描线  A% h4 P1 T+ t( {3 \  P9 a( n* h
|        |        |  (扫描线起始于某行结束于下一行)2 o* \6 O* W8 W9 u
|        |        |                                                        8 `% j7 D$ n/ q* G& `) R% f, K
|        |        |  对于未加工的数据包,头信息之后是颜色索引(数值由头信息+ {" ~  ?6 ~1 D( v2 v; p" k. o
|        |        |  给出)该类型的数据包也可能跨越扫描线, O# I2 n+ P5 l( k  X8 u# {
|        |        |                                                            # X! ~9 ?7 z* Q1 n) _0 Y. ]
--------------------------------------------------------------------------------% m3 h2 ~0 [9 [

. {$ H  e6 S: O. v2 i% I6 m1 Z2 r; p3 I7 _& ]

8 F! @; Y; M7 |; C6 e% W3 g9 {" ?( [% c' G/ ^1 ~% |
--------------------------------------------------------------------------------
5 q5 D' q9 }, i  T* M|数据类型 10:run length 编码,rgb 图像' u3 q3 X9 i: \) j1 ]
|--------|--------|------------------------------------------------------------0 H0 y% p0 R9 ~3 r
|   偏移 |   长度 |                         描述                              
. [# W* U) k4 Y! A|--------|--------|------------------------------------------------------------
. h' G  o' S' m9 T1 d|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               
* R' O. D0 Z1 B  y! q  a|        |        |                                                            
% U8 x+ F1 r5 {4 s8 L& Z|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     
: R" E- q8 j3 L! F9 E) k3 u|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     ; [& J7 W. E) h
|        |        |  信息字段。   
# a! X. K% g3 s' o+ R% A5 c/ }|        |        |                                                            " L- K8 i2 P2 }+ T" }! I2 Y1 y
|--------|--------|------------------------------------------------------------7 x/ b) t0 y4 c7 b, b: r
|    1   |     1  |  该字段的内容或者为 0 或者为 1;0 表示没有颜色表,1 表示. u% O/ @; P; u( K. U
|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。3 d0 j7 z% k. @/ u, U
|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射
9 G$ h8 K' z  N0 O6 f* f( \|        |        |        中的第一种颜色
  S$ {; A, R: N" {|        |        |                                                            4 g1 z7 J2 Z3 X8 P
|--------|--------|------------------------------------------------------------1 R  G/ d/ a. ~) ]* [3 G6 v
|    2   |     1  |  图像类型代码
% A5 Q: w0 y& y|        |        |         
9 x+ g7 m+ F+ z) U( h' S|        |        |  本类型该字段为二进制 10$ C# v0 s* o2 W9 B2 [( G
|        |        |                         ! l5 ?& t% b+ {
|--------|--------|------------------------------------------------------------
: L: z) t6 N$ I' I, {5 q/ @8 W8 E# G! R|    3   |     5  |  颜色表规格
* u, S5 T( |9 g# e) t" f|        |        |                                                         3 v! S2 c! p1 C4 m6 `
|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下
9 l3 }. a: u" H/ S: r  N|        |        |  $ Q$ K# n: d( J! J2 c. s! ^3 a1 O
|        |        |  
# I  D" k3 E0 `* D6 B0 {|    3   |     2  |  颜色表首址. s, c9 y, m3 Y& m4 o" |! e
|        |        |  颜色表首元入口的整型(低位-高位)索引) q9 N/ z  }6 @& n
|        |        |                  
9 T" Z# U: L$ \  c! q1 q# O$ ]|    5   |     2  |  颜色表的长度/ D/ _* X6 _$ Q7 K; I2 D" Q7 U! Q
|        |        |  颜色表的表项总数,整型(低位-高位)     / N) _+ `6 M. ]) T4 v
|        |        |                                   
, s# `5 U7 W0 p/ a|    7   |     1  |  颜色表表项的位(bit)数  {0 E& I' o8 z& @) v$ H  A
|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA
. Z1 Q- t5 I0 |3 |, M5 \|        |        |                                                            
3 Q  n. a( a" m) p|--------|--------|------------------------------------------------------------0 w7 \' A* c  k9 S5 W* M
|    8   |    10  |  图像规格                                               ( P# W' P. ^8 b, D' n7 _$ ]
|        |        |                                                            
$ m$ e3 ^: I( k3 B8 ~$ ||    8   |     2  |  图像 x 坐标起始位置                                       
) x) `6 _1 g- Q; G|        |        |  图像左下角 x 坐标的整型(低位-高位)值               
; w% N! Z- M; W$ K: {|        |        |                                                         2 M; V; X5 S5 O& I% p6 W
|        |        |                                                            
- g6 X* r1 U6 }9 `: D8 \, X( G  d|   10   |     2  |  图像 y 坐标起始位置                                       
) S+ {; R  i# w5 Q|        |        |  图像左下角 y 坐标的整型(低位-高位)值               , ~/ @* B4 M* w$ h! m3 R2 P2 i
|        |        |                                                         
( y8 e7 L$ ~6 C3 n  W- S|        |        |                                                            * w& q/ t  c, `( N
|   12   |     2  |  图像宽度                                                   * i& q! E' ]  d
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           " E* Q) ~7 D9 V2 L3 i
|        |        |                                                            
& O: ~, T- Z+ V  V% \2 \/ d/ k4 ~|   14   |     2  |  图像高度                                                   
& w* Q8 K3 V. s& ^|        |        |  以像素为单位,图像高度的整型(低位-高位)值               ' I' @- w% ^4 Z5 o
|        |        |                                                            
$ G) F1 f* t" b, \|   16   |     1  |  图像每像素存储占用位(bit)数                             $ W$ }. Z  w5 m1 k
|        |        |                                             
7 t6 ~) F# Y& z$ I|        |        |                                                            
1 {- \4 \' N# p: }; f|   17   |     1  |  图像描述符字节                                           , ~3 {$ D1 d+ D; U' `
|        |        |  bits 3-0 - 每像素的属性位(bit)数                  
4 Z0 @1 y9 g& I; P" n|        |        |                                                        3 k2 C+ A2 d% N, l
|        |        |  bit 4    - 保留,必须为 0                               , x6 V- f% U* d, x5 K: M% z1 h
|        |        |  bit 5    - 屏幕起始位置标志                           , h% t" L# ^0 J4 U- k( ]* M0 M
|        |        |             0 = 原点在左下角                       
( \3 a5 x' ]2 T+ J( Z+ o|        |        |             1 = 原点在左上角                           K) a6 a5 |4 Y# x* f
|        |        |             truevision 图像必须为 0                        
1 E4 g" W& l; I: V4 W|        |        |  bits 7-6 - 交叉数据存储标志                       
: C; P) k& p9 ]+ v( k|        |        |             00 = 无交叉                                   
1 v; ?, o/ h( h|        |        |             01 = 两路奇/偶交叉                        8 P# w& `7 ?! z; E; D
|        |        |             10 = 四路交叉                              
1 |) y1 J' A! {, ~  ?$ \|        |        |             11 = 保留                                   & m  V8 y7 k/ n
|        |        |                                                            
+ j' w# |; a" ^7 C; Y|--------|--------|------------------------------------------------------------# @7 Y2 K8 s; S# x2 t: f- s; k
|   18   | 可变   |  图像信息字段                                       1 F$ |3 y3 U. I0 k9 D
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   
: K% l  _- b9 |+ ?# k' V9 M& j7 k6 t|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以    % d; r5 C( J3 ]7 l- M
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   ( ~2 v. O2 L) p# U
|        |        |  之后9 n% q4 h' d& J
|        |        |                                                            
- @1 j) g2 I+ [& X0 [8 c  ^|--------|--------|------------------------------------------------------------0 P# R# u! t: t9 D" k; h& U. b
|  可变  |  可变  |  颜色表数据                                                # R6 t( j5 r% ]5 [' k4 \
|        |        |                                                
9 j5 a* D2 f0 g! z$ o6 g. Q|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取6 L3 N, J/ }3 H) B7 _
|        |        |  图像颜色表规格中描述了每项的字节数,为 2,3,4 之一
8 w" _' H7 ^" \* J' U- q|        |        |                                                            
% w. a/ V- A- }$ w/ o* c|--------|--------|------------------------------------------------------------
: G1 b2 s! }0 \! U$ H9 N| 可变   |  可变  |  图像数据域
, K0 Q; q; H/ t# o& {; v|        |        |                                                            + H7 d3 t! U/ U6 A
|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放, S2 V. ~' @9 G
|        |        |  在数据包中;有两中类型的数据包:run-length 数据包,
& b# g7 r9 {4 o; H|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,' r, ]! ~% Y" F/ p4 A
|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域8 V0 o' @: r/ D, X/ n
|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当( w) _/ i" |) @! f6 m6 [
|        |        |  它为 0 时,表示未加工的数据包
: a- R% @4 `! G0 Z; ]3 ^|        |        |                                                           6 E8 a, w7 u% E
|        |        |  对于 run-length 数据包,头信息含义如下6 W* i( |% j" g
|        |        |      __________________________________________________   
) F2 S$ |' w0 e) `* X8 P/ F|        |        |      | 1 bit |   7 位的重复记数减一4 w9 f& g$ ?: }; f- m7 u$ R+ t" C
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |9 P* B5 Y& O3 K
|        |        |      |       |   的运行大小为 128,(译注:原文为     |
2 j6 |6 u7 w( W|        |        |      |       |   the largest run size)          |  + u5 m; C" t: J: O% q- {9 Q5 P, p" X' x
|        |        |      |-------|----------------------------------------|
# H/ X4 s8 Z: C; g|        |        |      |   1   |  c     c     c     c     c     c    c  |
8 {5 y( L+ Z/ O2 k% L( {|        |        |      --------------------------------------------------2 a7 v9 X7 @) X0 j6 x  t6 T" @
|        |        |                                                          {/ d, F$ b* A/ X
|        |        |  对于未加工数据包,头信息的含义如下
9 U) o, g& X/ }7 \( F4 S1 p! j|        |        |      __________________________________________________
% J: T' b2 L/ r% \; [$ i# h2 }|        |        |      | 1 bit |   7 位的像素个数减一                   |
  v  {1 T/ W4 `|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |
) b; X* L. u) s' |4 t! Q6 O1 e|        |        |      |       |   类型的一个数据包中像素个数不能大于   |
( m" _" m: F( l$ {0 r9 e( s3 g! w|        |        |      |       |   128                                  |
6 T( I/ T$ K3 [5 z7 ]) ~|        |        |      |-------|----------------------------------------|7 @& N# Y) b! {; A! l5 n
|        |        |      |   0   |  n     n     n     n     n     n    n  |. J7 W* Y: X7 i
|        |        |      --------------------------------------------------
0 y2 t# M6 P( A|        |        |                                                            
, g+ B6 A# ]. c  D|        |        |                                                            % n9 V2 `# z9 E. u, ^& E
|        |        |  对于 run length 数据包,头信息之后是一个简单颜色值,
& Y: J7 |8 h  H1 B7 v; T% ^' r, P+ w|        |        |  且假定该值重复的次数为头信息中记录的数0 e" P) j5 X- N* K2 f" y; `+ |
|        |        |  run-length 数据包也许会跨越扫描线1 y& P# ?7 T( g& [0 D
|        |        |  (扫描线起始于某行结束于下一行)0 b; c. j. o; x+ M* c
|        |        |                                                      ( q( S) V" |1 |% T% J
|        |        |  对于未加工数据包,头信息之后是颜色值(数目由头信息指出)' A2 p. V) v! b! u
|        |        |  
$ H, f/ o& C. ?+ E) T/ E2 R|        |        |                                                
8 x7 H+ k0 V+ r$ S|        |        |  颜色表项自身有 2-字节,3-字节或 4-字节几种大小(分别
2 ]5 Q, `* \( V  i# z1 D|        |        |  对应 TGA 16,TGA 24 和 TGA 32)形式如下:! ~! i) {2 m- Q2 U- F& i1 s4 \
|        |        |  , H7 P$ `8 i* D  |( F
|        |        |            ( K+ J1 H( _; ^5 L4 R0 A  l1 o. K' U
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               1 @- A* v& B6 o! o+ V
|        |        |                                                            . }; V" V1 `# i  n! W& H* M( F9 H+ G
|        |        |  2 字节表项中,两个字节分解成如下形式:               
. H' [) x5 _& L, _& Y, B. ]. d; ||        |        |  arrrrrgg gggbbbbb                           $ x0 J  ?: t2 L' J* r5 w
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  # M5 r  e6 w% U/ x7 W
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位' M/ }( H5 ]8 o5 Z- ]
|        |        |                                                          ( o& _" @8 M5 t2 K
|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个
* t- b* T; I0 |# l* P- {|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象
- w" Q* C: z, H. \7 {|        |        |  TGA 32 类型的图像那样存储
7 M' {4 v9 [9 V7 R+ W( M|        |        |                                                            
( u; {0 ^# N, f1 U$ u5 i" a--------------------------------------------------------------------------------
& ~% D5 i8 [8 t2 Z  }: i- _. O1 \! e3 {  y0 V
<完>
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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