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

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

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

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

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

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

原文
' C' J. J4 w* L$ u6 Z7 \0 s+ Uhttp://dev.gameres.com/Program/Visual/Other/TGAFormat.htm. H  d5 p, b: }4 q: I/ _
  
9 n6 v7 [3 w$ t5 `. q; T( U根据david mcduffe编写的TGA文件格式资料翻译而成' O; F8 r. t4 Z
 
' l% F! q7 L: t) w5 u' [  G本文档是为满足许多对 TGA 图像格式的了解需要而创建的。本文摘录自truevision 技术指南的附录 C,如果5 g1 t+ K5 B$ x. L  m0 o' `
需要更进一步的信息,请致信以下地址:
+ I. b, L* J" r; w" }
& z: @0 V5 b3 Q  \3 u           at&t- D8 |+ H' q9 ]
           electronic photography and imaging center
& _% O6 b: N# e7 j* ]; |' U           2002 wellesley ave.* R0 @  I5 M& B: X% P. t+ x- [: M
           indianapolis, in 426196 d# }: f5 G( O% n
本文档不求全面,但力求准确。如果你发现了任何拼写错误或内容错误,请告诉我,( david mcduffe, $ y7 ~8 }' S; q7 a+ }- b5 m
75530,2626 ),我将改正这些错误,谢谢。# K% _7 X. ?# s0 N
( X. F: v8 Z$ M; G
不全面的原因是 TGA 包含了超过六种图像文件格式,而其中的几种较为常用。 我选择了我现在使用的格式并
" W/ l- v5 i3 T; q. @在本文中加以详解。 如果你需要本文中没有包含的格式说明,你可以与你的 truevision 代理商联系。
2 S0 _" p* ~% ^5 x: @对所有的 TGA 格式的文件而言,其第三字节(二进制整数)用来区别各种不同的 TGA 文件。下面列出了该字
7 Q1 T" _8 q' P6 ^( S  x8 n节表明的对应文件类型:: k9 J( N* o( r
    0  -  文件中没有图像数据! M( f, J% s+ V' A& H. L" @( I' I
    1  -  未压缩的,颜色表图像+ S+ V0 [3 X% L" J
    2  -  未压缩的,rgb 图像
4 V$ a. C8 a. R3 N    3  -  未压缩的,黑白图像
6 @" [: g9 j% C$ x* ]# q    9  -  runlength 编码的颜色表图像6 @$ U' S9 n+ H9 O, \
    10 -  runlength 编码的 rgb 图像% p! j9 f  v. Q5 E
    11 -  压缩的,黑白图像
7 T' {; M2 m* A+ W3 @$ Z    32 -  使用 huffman,delta 和 runlength 编码的颜色表图像
( u) o9 }# ^" K$ F) `8 T$ @    33 -  使用 huffman,delta 和 runlength 编码的颜色映射图像,4 趟四叉树类型处理。
5 z) x' l9 f" X/ c9 [    本文仅仅描述对应 1,2,9 和 10 的文件格式。: K5 ~% M* e  G8 l

" L! A# G% Q  d, ^" o) Y--------------------------------------------------------------------------------
- Z8 E. ^: v0 O+ s" L. R|数据类型 1: 颜色表(color-mapped)图像. s; B0 [* m4 |. Z! u
|--------|--------|------------------------------------------------------------
: }& [7 y- F* V$ l! |4 _|  偏移  |  长度  |                            描述
: f0 K) T! P1 u5 L: s1 J- V5 h  S|--------|--------|------------------------------------------------------------
0 R7 L8 [* g# X- p|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               # A& Z* u1 q  f( [
|        |        |                                                            
, s4 }" m  `) [1 g2 R6 S/ d|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     ! X' l& H4 R: c+ ]9 A
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     
6 ^, ?( ]; r/ {" ]7 S+ L3 ]* f+ A|        |        |  信息字段。                                   1 E: {, V0 q+ v8 a& i! @$ e, p0 @
|        |        |                                           ~: T5 o; E+ W$ `
|        |        |                                                            
3 C  P* m$ _9 O|--------|--------|------------------------------------------------------------
: N2 d% i4 ?0 k, q& N" @* d|    1   |     1  |  颜色表的类型                                           . }" A! Q1 D5 Z# X2 m
|        |        |                                                            * q+ F7 M( y' T* ], L
|        |        |  该字段为表示对应格式 1 的图像而包含一个二进制 1           ( J5 W. A( T; D' h8 D$ U4 O
|        |        |                                                            
: A6 Y" j" ~$ u" n- Y+ v- U$ m4 Y|--------|--------|------------------------------------------------------------3 M; A6 D( u: ^3 G( l; @6 n$ ^) L
|    2   |     1  |  图像类型码                                            ; ?& K( H7 T" \; @4 ^( s
|        |        |                                                            
: N5 y# P5 s( B9 o|        |        |  该字段总为 1 , 这也是此类型为格式 1 的原因               . z, D9 m  ?4 |2 v, e, @$ C, z5 R
|        |        |                                                            * W0 r- w8 f# _6 c
|--------|--------|------------------------------------------------------------
" e1 [1 k& l) Y4 R  L|    3   |     5  |  颜色表规格                                       
' k3 {: r2 v, z|        |        |                                            ' {/ y2 a4 C% M. [! O
|    3   |     2  |  颜色表首址                                                - g# y) U& q; L- C
|        |        |  颜色表首元表项的整型(低位-高位)索引               
( J$ p% F8 ]9 D, N" ^|        |        |                                                            7 S, _0 N9 w/ q$ I3 _  M
|    5   |     2  |  颜色表的长度                                          + r, y2 {  y$ u' x# b, x
|        |        |  颜色表的表项总数,整型(低位-高位)                   ( L7 z# U& l" [3 X0 G% }  ^
|        |        |                                                              G$ h# |5 l3 _' J2 k% h0 e: f- C
|    7   |     1  |  颜色表表项的位(bit)数                                   ' _# _, x: G  @! b3 W
|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA
4 I! P, O  U  j' I$ b|        |        |                                     * K8 J3 p+ j" Z& W. I, X3 W
|        |        |                                                            
2 j  \3 T9 T, l1 w' a|--------|--------|------------------------------------------------------------
! a/ \& U1 |  B& O' z# f+ L|    8   |    10  |  图像规格                                               
: l) u7 U" }1 d|        |        |                                                            
& F1 {3 r: o5 l, ]& `6 u8 b0 w|    8   |     2  |  图像 x 坐标起始位置                                       
( p- `+ q- [9 C. l! v, M' e% X|        |        |  图像左下角 x 坐标的整型(低位-高位)值               ( q7 k* f/ r$ ]. I
|        |        |                                                         9 \* a1 f4 t+ Y+ c/ K& U7 O6 W
|        |        |                                                            
- B+ J) g5 I4 S$ N% r3 l|   10   |     2  |  图像 y 坐标起始位置                                       " L- ]7 H, r$ L  B1 `
|        |        |  图像左下角 y 坐标的整型(低位-高位)值               
; `4 M$ z& O# C' O0 f0 k2 E|        |        |                                                         / K" O. q& l( @. e: s" |
|        |        |                                                            5 d0 a7 Y$ S' O* z* o$ r- E5 N% m  S' b
|   12   |     2  |  图像宽度                                                   
- r" S. z$ B) R9 L2 N  _  E' L* ]|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           5 u# b/ e2 j) T, q- G
|        |        |                                                            0 B2 |- J3 x8 ~' a
|   14   |     2  |  图像高度                                                   
3 O, T9 U  p3 m8 V( ~/ k|        |        |  以像素为单位,图像高度的整型(低位-高位)值               9 U: J: ]" f0 g- I* c) x6 a
|        |        |                                                            
* `% i* c: y# K, m7 V  G: P" R|   16   |     1  |  图像每像素存储占用位(bit)数                             
: r. O, Q1 Q1 O" {7 \' A' u9 x|        |        |                                             & c! v* V: \5 f3 I0 G
|        |        |                                                            
! x! g$ c! U7 w0 a" W|   17   |     1  |  图像描述符字节                                           # s* F0 b, e+ e$ j
|        |        |  bits 3-0 - 每像素的属性位(bit)数                   ( ]  E$ ?7 {) p( p0 J
|        |        |                                                        
2 W+ ]" u9 ?/ N  i- r|        |        |  bit 4    - 保留,必须为 0                              
- M$ o$ b, C) {( [+ O3 W|        |        |  bit 5    - 屏幕起始位置标志                           ' B( Q: L1 ^1 ^
|        |        |             0 = 原点在左下角                       7 f; d* p8 m+ ^5 l' k# o
|        |        |             1 = 原点在左上角                        
+ r6 d7 ~) X% R( y|        |        |             truevision 图像必须为 0                        
7 `( g- X2 _9 G|        |        |  bits 7-6 - 交叉数据存储标志                       
3 g) Q1 q) N7 h8 \. e6 ^4 o|        |        |             00 = 无交叉                                   9 D# I9 p; q5 m8 _& P3 l% U
|        |        |             01 = 两路奇/偶交叉                        + W  M8 f% B( g" _( g& i
|        |        |             10 = 四路交叉                               3 P; m, B" H, ?2 k
|        |        |             11 = 保留                                   8 g, E! S; m$ E4 G% C. d
|        |        |  这一项应该设为 0,不要问我为什么                  
# p" X! ]* b8 j1 B* u) ]$ ~|        |        |                                                            
+ i- F! {' ~( s: e|--------|--------|------------------------------------------------------------
: V0 R/ Q7 m$ ~% T) P|   18   |  可变  |  图像信息字段                                       
0 b( D- u5 {% j0 S; T- U. H6 U|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   + e- g" F  o3 H! k4 c. }# Q
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
& c% |  }+ B! f$ ]4 x2 @|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   " h, H$ |  o7 P8 @
|        |        |  之后                              
* Y+ t1 k4 C( Z0 i|        |        |                                    - g' `" v9 e- _* u+ `
|        |        |                                                            ! j8 F: D8 P7 f2 U8 w, H: |
|--------|--------|------------------------------------------------------------6 m  y  e' O5 m: i- X
|  可变  |  可变  |  颜色表数据                                                5 r* m; B$ T6 \3 X, _" X
|        |        |                                                            
( ~0 E! ^% d/ g1 N! G6 i+ o& F|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小      % y$ l( |9 b& e: Q4 i: O0 y
|        |        |  和数据项数目决定(在前面相应的说明字段中给出)            + {* b8 a7 k, l; d! V' f
|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit) ; k7 b0 Z% k. L* _) X# x( E5 k% V9 c
|        |        |  被认为是属性位。                           ) H1 z6 p6 h2 R4 W. ^8 q
|        |        |                                                            7 o- y3 ^( I0 e, y9 q# J7 P
|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,. O$ Z9 e3 S3 V' k4 c2 L, V
|        |        |              字节 3 表示 RED,字节 4 表示属性           0 v! f$ A0 }$ A9 h9 e: L# Q
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               
  M2 M3 R8 d4 y  r# Z|        |        |                                                            * d3 _/ Y) ~* v0 q
|        |        |  2 字节表项中,两个字节分解成如下形式:               
7 `- @# _- j6 Q( A2 {2 s2 V|        |        |  arrrrrgg gggbbbbb                           
* ?2 d- w8 F7 g1 \|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
2 x/ F3 R, l' o( }0 V0 u" {7 b, \|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。  
, p, @; W4 _" H|        |        |                                                            2 l: j( R( G9 k# h3 T5 V
|--------|--------|------------------------------------------------------------
9 V+ q  s# o: I" I|  可变  |  可变  |  图像数据字段                           $ c) y6 s$ U7 R3 \+ Y4 p6 f! |/ v
|        |        |                                                            + ~! V( t9 z2 G6 x0 y  s
|        |        |  该字段给出了 (高度)x(宽度)个颜色表项索引,每个索引    & Y8 i/ p& F! ~0 |
|        |        |  以整数个字节的形式存储(典型的例子如 1 或 2 个字节)      
) V, F7 a  _# B$ `8 e; b|        |        |  所有的数据都没有符号,对于 2-字节表项而言,低位字节是     
- Z2 @" x( \. `|        |        |  先存储的。                              
" f, F/ T3 j, Y# g3 r8 F# R+ O|        |        |                                                            
8 q/ r3 W: I1 A-------------------------------------------------------------------------------1 `0 |' F0 `$ S

- x3 Q; x: v( e3 i
; ?' ~9 e9 Z8 D
* \- L6 W% `2 d1 ~" J5 W--------------------------------------------------------------------------------
  r! f  P8 b! O9 @5 i8 E7 }2 Y3 M|数据类型 2: 无颜色表 rgb 图像                                  ) N* v0 W4 Z' @; ~7 o/ S3 ^9 M
|--------|--------|------------------------------------------------------------, ~% t/ C$ t- U3 w' P
|   偏移 |   长度 |                         描述                              
' |- `( u  V* ~4 R3 y|--------|--------|----------------------------------------------------------% e+ e2 u/ ]6 h* V  E
|    0   |     1  |  图像信息字段( 见本子表的后面 )的字符数
5 M7 |/ b9 `/ P|        |        |                                          ) R3 m+ U$ z; C
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度% u$ w' X, b; X: A- g; Q& ^5 l
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的
- q- H! O5 u/ Z9 L3 O) Q|        |        |  信息字段。% y4 P/ E& o$ O" ~' C
|        |        |
  L0 i9 e( \& b& ]" R6 D: c|--------|--------|------------------------------------------------------------
" `% y, D0 d, H& M( g. R|    1   |     1  |  颜色表类型7 J4 c9 _5 A1 o" N  b8 |
|        |        |                                                 2 z& [2 u( L  ~( Z( c  T
|        |        |  该字段的内容或者为 0 或者为 1;0 表示没有颜色表,1 表示
3 s1 S( l1 o9 D+ J. s, f* P7 w|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。
& t- x, @3 `) T|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射
& T% Y% r8 f  ~9 a|        |        |        中的第一种颜色8 J2 Z0 Q' d7 Y/ d  D( K* P
|        |        |
3 y9 i* e1 |. S, m|--------|--------|------------------------------------------------------------
! o% G4 I! \( q: Z|    2   |     1  |  图像类型码) w# S, A" G6 |' h( `3 h
|        |        |                                                     : O; i. t; N6 W, k/ h0 g
|        |        |  该字段总为 2 , 这也是此类型为格式 2 的原因   
& l7 Q9 V* b1 f|        |        |  0 w- j0 t" ^: F% `! ]
|--------|--------|------------------------------------------------------------. |- r4 h* e; ~# r0 x  n. y
|    3   |     5  |  颜色表规格) F, o- d4 n, `! C9 i
|        |        |                                                         
1 |$ k. K! |; S, w4 N|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下
1 S" ^2 q  V! E7 [6 d6 {|        |        |  
$ L! s) R3 x) t( t|    3   |     2  |  颜色表首址
2 n' S6 l) A; N& F8 M|        |        |  颜色表首元入口的整型(低位-高位)索引/ L! C2 n7 P: E& {# [% y0 @  d
|        |        |                  + K# @- t2 m6 b8 a
|    5   |     2  |  颜色表的长度( r8 @- s4 y, z
|        |        |  颜色表的表项总数,整型(低位-高位)     
; D  f. ~4 E+ J$ E. l$ }5 y6 u8 B|        |        |                                   
2 g  k: ~  X3 |$ Z( P8 w8 L|    7   |     1  |  颜色表表项的位(bit)数, s( k* R8 L+ l* f/ [1 e
|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA4 ?0 s/ z4 {/ Z9 \1 Z+ Y# r
|        |        |  
+ M& I: w* o7 G- e( S3 O3 f|        |        |                                                           + t$ f: c) P0 U0 x" ?4 k2 {; R
|--------|--------|------------------------------------------------------------" F3 j7 D1 s7 }1 ]" h
|    8   |    10  |  图像规格- v/ d1 _6 n% v7 x# L3 d% x
|        |        |                             ) ~6 {( _) w% K  B
|    8   |     2  |  图像 x 坐标起始位置      
3 R0 F! t" N, Y8 l! s& E6 Q: x|        |        |  图像左下角 x 坐标的整型(低位-高位)值( p: y, |' {0 k3 ]  e4 ^$ _: N$ z
|        |        |  ! i" p$ V7 K3 Q& Q
|        |        |6 I5 Q7 l! }) O' O
|   10   |     2  |  图像 y 坐标起始位置
/ {8 g. i4 X- d& B; I|        |        |  图像左下角 y 坐标的整型(低位-高位)值* W' N* A$ t; z. g! J  }: y" o
|        |        |  
. t) s2 K" \. A) P|        |        |+ v1 b, X3 G' P' \# w: _
|   12   |     2  |  图像宽度 2 J) k$ V, @2 h2 V
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值
- g" O( J3 B7 C6 W|        |        |
0 T, }- j, B' ~! Q* L|   14   |     2  |  图像高度
' l: a" U. X9 u) V5 @|        |        |  以像素为单位,图像高度的整型(低位-高位)值5 o) u& v7 k8 u' U5 b# {( T# }! g
|        |        |
" q# U# @9 k  y; T! C6 ?) y3 h|   16   |     1  |  图像每像素存储占用位(bit)数
* {1 P* ]& G" }|        |        |  它的值为16,24 或 32 等等决定了该图像是 TGA 16,TGA24$ F2 _9 |' g& B. V2 E! J* s9 F- S
|        |        |  TGA 32 等等
: N: H+ i( u5 b5 n* B% T|        |        |
7 Y- e' S; i  p4 {& V. F( L' m|   17   |     1  |  图像描述符字节9 R/ }* f+ D$ v( G
|        |        |  bits 3-0 - 每像素对应的属性位的位数;对于     TGA 16,# X8 P: k" |8 H9 d8 c
|        |        |             该值为 0 或 1,对于 TGA 24,该值为 0,9 {% X8 J: ~0 ]1 m# C
|        |        |             对于 TGA 32,该值为 8- R; B8 }2 {* |) |: k% e" t
|        |        |             % W% C( m7 Y/ ^/ w
|        |        |  bit 4    - 保留,必须为 0
  P2 @& Q$ q8 y2 v5 U% E/ J8 F. q|        |        |  bit 5    - 屏幕起始位置标志
( H2 w: {' ^6 ^0 Y% D( L|        |        |             0 = 原点在左下角0 K- a: m0 @8 X* b3 j7 f$ v7 E
|        |        |             1 = 原点在左上角. E3 _% s& n3 Y& |, G
|        |        |             对于 truevision 图像必须为 0
, X% o( a, f: J3 F# @% l8 R|        |        |  bits 7-6 - 交叉数据存储标志! k; v2 A. E& K  f& @
|        |        |             00 = 无交叉                                   ! q' |8 N$ e- b4 }
|        |        |             01 = 两路奇/偶交叉                        
- J3 s0 k  `/ b# n|        |        |             10 = 四路交叉                               ; n1 f% P) r2 n* H! X( [
|        |        |             11 = 保留7 I  n- X; ?; _: h# e
|        |        |                                                            % r; }$ v- o' {/ s. @
|--------|--------|------------------------------------------------------------
4 E0 c. n. r  q& l. F" z0 r|   18   | 可变   |  图像信息字段                                       
- _2 I8 J; N1 T4 f0 {|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   
" y% m' c( M, H; s( Y, [|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以    : j! Y, G3 s5 n$ E0 W+ b
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   
" P; G  [! x/ i- i|        |        |  之后                              
7 N0 l( s" X; f* H$ j/ l$ k$ a|        |        |                                                            $ u; L: A! z" h5 }+ Z: v3 H- [
|--------|--------|------------------------------------------------------------. D: J! ~+ S  ?% ]7 P7 W; v
|  可变  |  可变  |  颜色表数据                                                " `& W5 @0 z) z7 n8 `$ N
|        |        |                                                
$ m, O% o' Q* i) v$ S|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取
( q) z4 V# A2 ~' q: j|        |        |  图像颜色表规格中描述了每项的字节数,为 2,3,4 之一
3 R+ Q1 O7 O* O5 ^|        |        |  
' T8 \' D! R+ M|        |        |  
7 m. L7 l6 v( T+ I% f: }|        |        |  
1 m" _+ w; C6 r" `& u0 O3 D|        |        |  
  p( r# u- a! e9 J# Q* r|--------|--------|------------------------------------------------------------5 Y: c' ^6 Y9 r/ y6 j
|  可变  |  可变  |  图像数据域
0 P6 ~# a# @3 g|        |        |                                                   
" y  I8 ~; E8 O- u/ H4 K. C( A- A|        |        |  这里存储了(宽度)x(高度)个像素,每个像素中的 rgb 色值8 v. D' p/ B% X! u' y: B: v
|        |        |  该色值包含整数个字节$ g! K1 Q; {5 v0 A* S* e4 Q) n
|        |        |  ) [' [/ P  O+ C# V0 {  R
|        |        |                                                           
/ k4 e2 B- v$ z  O' {|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               
' G* m1 _$ y! i" M3 W|        |        |                                                            
! n1 P  S" ?4 Y4 e4 d% Z1 o* u|        |        |  2 字节表项中,两个字节分解成如下形式:               + Q% A$ Q/ [8 B: J$ D& r/ @
|        |        |  arrrrrgg gggbbbbb                           
( e! Y) u7 k' X9 |+ G' s! O|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  : X, [+ ^, V, e0 k: w" m! v
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位
9 S' {) g. o2 G- f+ A2 o|        |        |                                                          9 s2 J/ v" h( v# S
|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个" \# |' i. X6 F* `, C' T. Q
|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象0 H( }6 c; I. z! z8 g3 N' ~
|        |        |  TGA 32 类型的图像那样存储
* I3 q5 ?3 s$ G6 }8 B|        |        |  5 }2 S: O# @' ?, v8 {% l9 A
|        |        |                                                         0 m, U9 Y1 U4 B& ^! l  N" x" [
--------------------------------------------------------------------------------" t3 ]4 t; u- E' C( E
$ a) T6 E1 p0 ?$ z7 v

* [) H$ y$ ?- N* m
1 a4 T  v6 N( \) h) G; J; e) z" r4 ?8 a. x$ U, \
--------------------------------------------------------------------------------! i3 `; J. N# e9 G9 r  j) q
|数据类型 9:  runlength 编码,带颜色表的图像1 N4 z9 H: C' I, w
|--------|--------|------------------------------------------------------------
% B" ]' n4 s& O|  偏移  |  长度  |                            描述( K+ d% i) ]: w% e/ @! n
|--------|--------|------------------------------------------------------------9 m! S* R( }- [# b
|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               
$ C1 j4 M) @# O. w|        |        |                                                            + W5 N- Y6 ?, X: Z& |0 v
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     ' r) o# Y& q+ L, A
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     ! x% W9 a0 E9 a5 }
|        |        |  信息字段。   
6 K, p' ]" C4 M" \|        |        |                                                            
7 N7 Z8 ~/ o( H4 X. [. ]7 V; i|--------|--------|------------------------------------------------------------
+ G: |; _9 G. }|    1   |     1  |  颜色表的类型                                           * q3 b  W. a' S7 r7 e
|        |        |                                                            + J. [. _: G2 N  y! l7 |
|        |        |  该字段为表示对应带颜色表的图像而总为 1
7 _7 t2 Q) Y! J+ k2 k. A: Y/ _) f|        |        |                                                            
5 I# t* q; w# ^" P|--------|--------|------------------------------------------------------------
. E5 o, K) x: y; O& O( x|    2   |     1  |  图像类型码6 d5 U1 [: f. ^6 m/ L% P# H$ z
|        |        |                                                            ( s- D' d- L- a
|        |        |  本类型该字段为二进制 9- x: n" L5 s# o, C
|        |        |                                                            
7 M$ n* q( O4 t9 S7 g|--------|--------|------------------------------------------------------------
8 q8 o3 y6 y; F$ p. @( G|    3   |     5  |  颜色表规格* x+ o  `2 {9 \; r( T2 c0 U
|        |        |                                                         ; y5 E) M% L  w" h1 J, z2 _% r
|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下
2 v9 G3 G! x7 S" t' S& C: A5 S|        |        |  
" K3 H/ A% A  a3 ^' F|        |        |  
5 G. O: I& [' K0 ]8 M9 f0 n+ T|    3   |     2  |  颜色表首址6 Z5 B4 }7 p2 l6 t6 p
|        |        |  颜色表首元入口的整型(低位-高位)索引! Z% z1 U* E$ N9 [1 v
|        |        |                  5 ?, @" b- K% r  f- n' D
|    5   |     2  |  颜色表的长度9 g" U% I6 g5 c2 C& W9 @5 Q
|        |        |  颜色表的表项总数,整型(低位-高位)     ; Y3 w! h, n! O7 U- F
|        |        |                                   
% n. {5 {8 L, I; K: }. b|    7   |     1  |  颜色表表项的位(bit)数
8 p: e3 ?! o8 @* N$ F0 T|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA
7 ?1 T7 O% n6 z0 v+ K- C3 q|        |        |                                                           , T' q5 v7 e  W% u  z+ B
|--------|--------|------------------------------------------------------------
- q4 o3 m; I! f3 @& m" b# l|    8   |    10  |  图像规格                                               
6 ?- M* b5 Q% {|        |        |                                                            
) K" a- {: I5 C1 N* V|    8   |     2  |  图像 x 坐标起始位置                                       
: h1 w' ?( D, Z# v  w|        |        |  图像左下角 x 坐标的整型(低位-高位)值               
! O. T4 B0 @% M% o8 ?|        |        |                                                         
3 Y( {! F2 p6 X1 `, ]" ?2 ]! A|        |        |                                                            
" J! R5 }! b9 C4 N& R|   10   |     2  |  图像 y 坐标起始位置                                       
, `  I. m( e4 Z0 O5 P. }|        |        |  图像左下角 y 坐标的整型(低位-高位)值               
, H0 J  f. B) ~( C; G8 t|        |        |                                                         9 Z: ^% q1 q' u1 V+ d
|        |        |                                                            
; f6 M1 v  D: U( X& t0 Z4 N1 Y  u0 S|   12   |     2  |  图像宽度                                                   8 \+ V  d5 w  @/ _1 [1 w
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           
7 b$ P7 j6 t; U/ j& v* `|        |        |                                                            
  `) j7 c' l! s9 r& i|   14   |     2  |  图像高度                                                   
1 ?  _( O7 p' d/ B4 [5 w|        |        |  以像素为单位,图像高度的整型(低位-高位)值               
% e6 t" b* L* G! J$ w2 x|        |        |                                                            0 b$ p' \( Z& D! u
|   16   |     1  |  图像每像素存储占用位(bit)数                             
) R4 Z" b: v5 l) G0 e" G# g3 {" ||        |        |                                             
& I' F2 B0 v' n* h|        |        |                                                            
/ T9 H" C$ q9 S, S|   17   |     1  |  图像描述符字节                                           0 j' b7 N5 L7 y0 h  B% F
|        |        |  bits 3-0 - 每像素的属性位(bit)数                  
6 T) ^7 K+ W; m7 O! x, K" ~|        |        |                                                        6 @3 T2 {' ^' c$ D, t
|        |        |  bit 4    - 保留,必须为 0                               ) P+ M$ B5 `8 |6 x
|        |        |  bit 5    - 屏幕起始位置标志                           6 J+ C9 _' J2 V
|        |        |             0 = 原点在左下角                       
* Y3 y; c3 ]& U. X$ g- n$ Q* F2 U|        |        |             1 = 原点在左上角                         ! I5 E9 L3 U8 I9 D/ e) }4 E: V
|        |        |             truevision 图像必须为 0                         & B( C6 P. S" m
|        |        |  bits 7-6 - 交叉数据存储标志                       
$ _7 W+ ?# z& c7 j. P6 S|        |        |             00 = 无交叉                                   . ^: ]5 o7 n$ E0 p1 R: o
|        |        |             01 = 两路奇/偶交叉                        
* o3 _' p0 B- U* y6 Z/ E|        |        |             10 = 四路交叉                               & j9 Z- l7 d7 v9 B/ `, X
|        |        |             11 = 保留
4 E! ]& @+ B( b' c$ o|        |        |                                                            
3 j' R' x  H' x|--------|--------|------------------------------------------------------------% M( Q; i9 U9 q- |9 n$ L
|   18   | 可变   |  图像信息字段                                       0 c. ^8 l' u' {# d7 J; j- T( h) f6 X
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   
0 ]- T/ w0 g; ^$ y# l|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
. f7 ]! E1 a0 q' K1 z2 j|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   6 ?! P! F1 t1 R' k( i- @6 [  U
|        |        |  之后" }( C, X  Y& f, Q; `2 d
|        |        |                                                         
0 c$ G4 O0 U2 O: G|--------|--------|------------------------------------------------------------
0 A  i2 f/ |0 f( u|  可变  |  可变  |  颜色表数据                                                8 w" _5 H( d3 z% s, F
|        |        |                                                            - W5 M7 g. Q7 @
|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小      ) Q+ p5 r9 a$ G# T0 n+ S5 Z* ~
|        |        |  和数据项数目决定(在前面相应的说明字段中给出)            1 i$ T: l7 P( `, `4 L' o1 D
|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit) , b  ]9 J5 L3 _5 @2 A
|        |        |  被认为是属性位。                           
# M0 r$ K; W6 y, q|        |        |                                                            
) B0 M* @, x8 n# q% o! `|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,7 F) y/ e, R# k
|        |        |              字节 3 表示 RED,字节 4 表示属性           
5 u& J* `, ~  R& ?: U; w|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               , h; E0 }0 L2 d+ G* x8 O  g6 H4 h
|        |        |                                                            
9 U' q$ Z0 P* b4 V" i|        |        |  2 字节表项中,两个字节分解成如下形式:               
1 l  b% h$ d  Y; U: q7 P|        |        |  arrrrrgg gggbbbbb                           
: ]# I, A2 Y' y9 {|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
' _( N" h, i0 {: x& }1 w|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。
- p6 t, e' }+ p* l|        |        |                                                            / f2 p. {+ U5 w
|--------|--------|------------------------------------------------------------
$ X7 G. t7 A# h8 r& b| 可变   |  可变  |  图像数据域! a+ r# \- j; i% p6 f& R7 A; q- G
|        |        |                                                            " D5 m5 ?) E; R* _/ x  j+ E
|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放
+ M' J6 E) J! g& B9 C, S|        |        |  在数据包中;有两中类型的数据包:run-length 数据包,
8 B- ]4 _" t! E# `4 ]- K9 M|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,) j7 ~1 u5 t+ m3 r' }9 v" d
|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域
$ W# f: ?3 N, n. m; [|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当+ g2 M' ]# O; n3 E. B5 J0 h
|        |        |  它为 0 时,表示未加工的数据包5 a2 g, j& ^$ u+ E( }
|        |        |                                                            
: \* [0 m3 m' `4 r7 \7 B|        |        |  对于 run-length 数据包,头信息含义如下9 n  ]$ j& B' Q) b9 W9 z
|        |        |      __________________________________________________   
" T& Q3 \# ]! l% h% [|        |        |      | 1 bit |   7 位的重复记数减一
& z* i- [3 h  ], g|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |
: ?( b! a& |. q* y6 a) l6 o|        |        |      |       |   的运行大小为 128,(译注:原文为     |
, Y/ d4 c6 D$ |. e2 j4 [|        |        |      |       |   the largest run size)          |  , a  s  t  K% R8 F" o( n. u* H
|        |        |      |-------|----------------------------------------|
$ ?/ b' f5 o, ^. N, y|        |        |      |   1   |  c     c     c     c     c     c    c  |
+ I; s# L6 |. v0 s  M& e, G|        |        |      --------------------------------------------------  Q- p9 o, h# V* B- U" o! E. F
|        |        |                                                        
( u5 I( S: a' v2 X0 A/ h. p|        |        |  对于未加工数据包,头信息的含义如下: [- y) }. T* K9 Z/ Q; d( K
|        |        |      __________________________________________________
- d. X) Z/ I: U! F/ c' e" x|        |        |      | 1 bit |   7 位的像素个数减一                   |
9 j3 p2 C. A( p" w/ l" M|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |
% h4 W8 J, F8 w2 X. \0 S  ^|        |        |      |       |   类型的一个数据包中像素个数不能大于   |, t/ M% `: l) W; ~; i' P7 B. w/ M
|        |        |      |       |   128                                  |: `$ u- D* D# D- _
|        |        |      |-------|----------------------------------------|3 D/ i" j( m2 s- w
|        |        |      |   0   |  n     n     n     n     n     n    n  |
0 O% _$ j3 ~% ]8 I" A) B: f|        |        |      --------------------------------------------------
* }/ I0 k+ }9 @( @' x; p3 w9 Q; R|        |        |                                                        
, [$ @3 S% B4 V9 P( B" r|        |        |  对于 run-length 数据包而言,头信息之后是一个简单的
1 J+ U: N8 j+ d$ F3 s|        |        |  颜色索引,且假定该索引被重复头信息中低 7 位表示的次数7 ^. K6 P9 S& G- U$ x* D( s% D
|        |        |  run-length 数据包也许会跨越扫描线8 M' [& F! _0 {. `
|        |        |  (扫描线起始于某行结束于下一行)
8 s2 l; h; m! H; j$ L2 j|        |        |                                                        8 H8 s0 \- i) b
|        |        |  对于未加工的数据包,头信息之后是颜色索引(数值由头信息
2 v* l1 M) v# z7 S2 N7 K. i|        |        |  给出)该类型的数据包也可能跨越扫描线
$ e3 Q  I! M/ F: [& A+ R( n|        |        |                                                            9 U" o) r3 t1 U
--------------------------------------------------------------------------------4 N+ M6 N% i* a1 T( B! F. l

0 u8 Z! v  Q' p4 B& V0 P( [/ e

6 ^( Y* {- x. A( I/ |
; c* Q9 \" [4 d! X--------------------------------------------------------------------------------$ \0 g2 V7 X5 P6 ^: O2 g5 }( O, `
|数据类型 10:run length 编码,rgb 图像
6 Q& N7 N3 G1 V8 p|--------|--------|------------------------------------------------------------
3 ~2 w# Q" |+ O* p9 y7 o0 ||   偏移 |   长度 |                         描述                              
$ O. r& w2 j7 d7 }) ]7 ]. r' b|--------|--------|------------------------------------------------------------5 p6 W& x1 W0 B+ C' N2 R6 O
|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               9 z% _/ c8 X2 _
|        |        |                                                            4 ~$ k8 r6 Y4 c9 k: {0 `5 H/ D
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     $ o% Y3 }$ i% O+ a* s( l# ?
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     7 f' @: q: Y: [9 ]- h/ ~  v/ C* V
|        |        |  信息字段。    ' u8 l! j& N0 i+ C
|        |        |                                                            
* Z7 ~4 x  p$ [" Y1 h+ }5 a- M|--------|--------|------------------------------------------------------------; Z1 w! O" k) Z. d. p: K2 ?
|    1   |     1  |  该字段的内容或者为 0 或者为 1;0 表示没有颜色表,1 表示  p9 h+ Q8 n3 r# ^3 ~* E5 G
|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。; Q  a/ g# Q. d
|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射  e: v' |+ t) q5 {# Q; f
|        |        |        中的第一种颜色1 r8 m$ F2 Z' ]2 `+ _/ N& H" Y, B
|        |        |                                                            
- s0 E% j) B. `7 _; d) M|--------|--------|------------------------------------------------------------
3 Z) k9 e6 D1 H2 y$ r" C|    2   |     1  |  图像类型代码
" Y+ G# `, Z/ m|        |        |          & O3 J% \9 c' G4 ^1 O
|        |        |  本类型该字段为二进制 10
) l6 j9 h4 u, p1 R4 g# \3 V0 W. k|        |        |                         : W+ \8 l2 U6 |
|--------|--------|------------------------------------------------------------
: f* Y4 k2 L3 x# E# Y|    3   |     5  |  颜色表规格' [5 f7 h/ ~; K8 q, A, U; q. p' j/ [% R2 Z
|        |        |                                                         $ h, s: F! I+ p% u" j
|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下1 C; r: k0 C% D! r* l
|        |        |  : n! G1 _2 t$ _3 O! J0 b( G
|        |        |  
9 N" I5 }9 N" K|    3   |     2  |  颜色表首址
- |5 Q8 S9 H3 s9 h8 V|        |        |  颜色表首元入口的整型(低位-高位)索引
5 P: x' H- w  [/ G3 M|        |        |                  8 C# r9 A1 ]' Z! p( A, U
|    5   |     2  |  颜色表的长度+ B- P2 O+ u; H9 \; L; h& H, a7 R
|        |        |  颜色表的表项总数,整型(低位-高位)     ! m: K7 m* z' w  M$ S. [
|        |        |                                     ~& p9 @/ T6 s! ]+ s/ N
|    7   |     1  |  颜色表表项的位(bit)数
6 A7 n8 o  p6 J|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA
% b$ k0 a/ R) n4 [|        |        |                                                            7 L" B- o% q* ]6 R0 L- B# i: \
|--------|--------|------------------------------------------------------------
& d+ C" h, ?8 c|    8   |    10  |  图像规格                                                 t9 ]$ P% ~" U6 X  M
|        |        |                                                            
0 m! R/ h1 {! R0 D; a8 i|    8   |     2  |  图像 x 坐标起始位置                                       
" l+ \6 [- e; H: K$ l2 A|        |        |  图像左下角 x 坐标的整型(低位-高位)值               
7 T* V* Y0 R, ~' n" F3 S|        |        |                                                         ; U' B" l/ W* q1 }% C) [" Z
|        |        |                                                            
4 |  g0 d3 J1 O: v4 h; s8 G( I- G" r/ y|   10   |     2  |  图像 y 坐标起始位置                                       : s. K( M7 m# l! H$ h2 j
|        |        |  图像左下角 y 坐标的整型(低位-高位)值               
5 M" e0 W! J  `6 r3 s7 Z9 a( d|        |        |                                                         ' H0 e1 J; D8 }- K$ y7 \! P
|        |        |                                                            " ~5 r4 B: @" i' [
|   12   |     2  |  图像宽度                                                   ( v: k: R; O$ }% Z# B. K) f4 X  z
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           
% O- E6 k! N- s|        |        |                                                            
4 i( \: g# d9 `/ u, d|   14   |     2  |  图像高度                                                   5 s+ ^2 ]% K' o  z
|        |        |  以像素为单位,图像高度的整型(低位-高位)值               
4 ]$ |+ Z7 x( U( N1 c& m|        |        |                                                            
" g, W3 |0 o, u3 D) ?9 F|   16   |     1  |  图像每像素存储占用位(bit)数                             ( I$ C3 o! z! q+ K: G
|        |        |                                             
; T/ B, l1 J) J; K6 q8 n( v1 J|        |        |                                                            
* b0 o0 \+ _. x: B: m+ s& V* p/ k|   17   |     1  |  图像描述符字节                                          
! s. M! L; j* t. O" }7 [|        |        |  bits 3-0 - 每像素的属性位(bit)数                  
8 L+ ?" E% k- X9 W" U( {9 m|        |        |                                                        4 g# N1 C  C4 _' n: y
|        |        |  bit 4    - 保留,必须为 0                              
) b/ X  u% `1 m' c; ~8 i|        |        |  bit 5    - 屏幕起始位置标志                           / k+ \" \  b6 y; e. Z: ?6 y/ \% z& N
|        |        |             0 = 原点在左下角                       
; R" x% C" G+ j; e. U|        |        |             1 = 原点在左上角                         9 d" O/ K, Z+ @
|        |        |             truevision 图像必须为 0                        
# b5 o  U) s( ]  `* d. b& S1 g: ?|        |        |  bits 7-6 - 交叉数据存储标志                       
+ O7 @& C. A% w7 ~* b|        |        |             00 = 无交叉                                   * a- N2 ], A% f" e- O$ w
|        |        |             01 = 两路奇/偶交叉                        $ K4 M/ x1 Z3 C. U, C+ ^  [3 _0 l
|        |        |             10 = 四路交叉                               ; N" |. ~2 c6 a3 Z# r' h) i
|        |        |             11 = 保留                                   & ?2 y$ Q; O1 r1 B$ E8 X! q# ?+ `
|        |        |                                                            
) @* T' k9 b; P: I|--------|--------|------------------------------------------------------------
; c7 x6 u* }+ _  B/ }$ ]; ?5 s|   18   | 可变   |  图像信息字段                                       
1 z. ?# U% G6 G: g* k+ }|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   . W# \6 Q0 f3 u+ e' |) J% g2 a
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
3 N: J, l) A9 O8 i|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   
* H5 u+ I9 Q" Z8 o|        |        |  之后
9 Z' H$ Q! \( q, \5 P; ~. ~! U6 ?|        |        |                                                            4 D+ T* j. c+ h0 K4 H
|--------|--------|------------------------------------------------------------
6 V' t, m; d, G; ^2 Z|  可变  |  可变  |  颜色表数据                                                $ X# M8 J1 t6 }$ E; a4 J
|        |        |                                                
& V0 p! ~* _5 w/ b# Z/ V8 j|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取
# @" L3 v! M1 W% ||        |        |  图像颜色表规格中描述了每项的字节数,为 2,3,4 之一
+ Y, o- n% W+ s# q) |2 v|        |        |                                                            
# l! ^+ o8 ~0 n% `- d|--------|--------|------------------------------------------------------------
/ W4 C% w8 A8 v& x, ~1 P| 可变   |  可变  |  图像数据域8 Q0 t3 ~- i  V' W/ o2 Y# ?
|        |        |                                                            
4 m, B4 s& E+ M+ o) o$ S  h|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放
% A; o1 S3 ~( l3 _# ~+ M7 y|        |        |  在数据包中;有两中类型的数据包:run-length 数据包,
! ^* C" C* W  D: T  V# B. M. ~|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,
* y, I* h0 C, P6 \|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域
. L$ O% {" c: @6 i4 ?0 ~5 b|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当8 {, A% t* H. W, A) P) C( @9 J
|        |        |  它为 0 时,表示未加工的数据包
) b5 s' n2 L% \1 {- D  D9 j7 e8 l  @) B|        |        |                                                           
+ k; V& g, D7 H, k|        |        |  对于 run-length 数据包,头信息含义如下
- {5 ~0 a2 k8 T; c% v+ O|        |        |      __________________________________________________   
9 `: [. p8 X9 U* z- J|        |        |      | 1 bit |   7 位的重复记数减一
3 h* [0 W% S7 }: A6 R! b9 y" Y|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |
" B4 [" O8 Z$ Y8 X( @& `|        |        |      |       |   的运行大小为 128,(译注:原文为     |* e1 D6 X5 u( y# e. F' t/ C
|        |        |      |       |   the largest run size)          |  ( U& \# c- `" \" G" G. \- o
|        |        |      |-------|----------------------------------------|
3 j; ^9 T( \" o5 D, M, `) `1 G$ T|        |        |      |   1   |  c     c     c     c     c     c    c  |+ |& A7 b# N3 g& s
|        |        |      --------------------------------------------------
% E# F. ]+ [+ A1 L) X8 C|        |        |                                                        
. H, j0 j: r' t  ^) I, ]|        |        |  对于未加工数据包,头信息的含义如下2 {& h( M# X' L. j9 C
|        |        |      __________________________________________________% a" ]9 Z  ~4 y; H$ e8 x3 h: w
|        |        |      | 1 bit |   7 位的像素个数减一                   |
2 V% N, J2 b$ l, o|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |4 r& i" q, y9 G. v
|        |        |      |       |   类型的一个数据包中像素个数不能大于   |
6 D5 Q' L5 U; @/ ^|        |        |      |       |   128                                  |1 {& D9 I. L2 i1 @/ A( @2 l
|        |        |      |-------|----------------------------------------|
3 c3 I9 p, Q; D- i+ N: \* y|        |        |      |   0   |  n     n     n     n     n     n    n  |
! o) \1 `" n4 x; q- k|        |        |      --------------------------------------------------  e0 _& p* h! ~  U& L% m
|        |        |                                                            
( O! M! s; X  {|        |        |                                                            1 S7 R3 V5 T* W" i  R$ Z5 m( w
|        |        |  对于 run length 数据包,头信息之后是一个简单颜色值,* ^# K. a+ D5 k- a6 W, J( g
|        |        |  且假定该值重复的次数为头信息中记录的数
- l9 R6 V% C0 g" q2 G|        |        |  run-length 数据包也许会跨越扫描线
" J  m( M9 K4 u, Y7 K1 c|        |        |  (扫描线起始于某行结束于下一行)1 U3 [* w. C; ~4 X4 d- S. E
|        |        |                                                      8 y  M6 R$ ]' A4 V2 k- V8 K" M: z$ M
|        |        |  对于未加工数据包,头信息之后是颜色值(数目由头信息指出). [) o+ t4 l7 E' i" \! N
|        |        |  " p+ N8 ^1 a! L1 s
|        |        |                                                3 W# I$ F! I. \( @- ^
|        |        |  颜色表项自身有 2-字节,3-字节或 4-字节几种大小(分别
/ L1 g* E" m6 J! T( R, Z+ k|        |        |  对应 TGA 16,TGA 24 和 TGA 32)形式如下:
2 I+ Z- }; E7 J|        |        |  
6 J* ^- E& v( f! ^$ Q* _- U& O) C|        |        |            2 f, U0 k* e* [2 f1 T$ I
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               / X2 c% P: k0 o
|        |        |                                                            : B" R+ i  [" V* _( b1 n9 B2 `% w) o
|        |        |  2 字节表项中,两个字节分解成如下形式:               - z2 U% M0 t, D/ n4 Z  x4 P
|        |        |  arrrrrgg gggbbbbb                           ( {! Z# Y7 g. H: k: o; q, N- Z2 X
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
( \9 {' @  d/ |# e0 m0 m; B|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位
. I  Q, }( B) ^|        |        |                                                         
$ K  i. w/ E+ ~7 l|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个
, \. z4 ^9 O2 \|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象7 i* w6 F) N" P# V- f
|        |        |  TGA 32 类型的图像那样存储# W5 l$ _) P% R! c1 {
|        |        |                                                            
# q$ ?( G9 Z+ e& ~9 Q, q--------------------------------------------------------------------------------
1 U. ^# J4 m! M0 |8 i0 K% |0 L0 a/ q8 }
<完>
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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