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

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

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

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

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

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

原文
* L+ y' y. O/ ]4 j; S3 ^http://dev.gameres.com/Program/Visual/Other/TGAFormat.htm
$ j4 C8 x% r/ c; `  2 d3 \& k" U' P5 ~, N
根据david mcduffe编写的TGA文件格式资料翻译而成  B* P( I+ o4 C0 m
 ) N/ d, s& L, s, p- K  u4 P, }8 z
本文档是为满足许多对 TGA 图像格式的了解需要而创建的。本文摘录自truevision 技术指南的附录 C,如果
# @& y$ V2 c- E! j  h需要更进一步的信息,请致信以下地址:
( L4 c: G# x1 n, W$ b+ X* A
# ~2 ~4 n3 D! c5 y5 ^           at&t- M3 i) c; K( v8 q9 x
           electronic photography and imaging center8 a; V/ a, Y  q! r
           2002 wellesley ave.3 C$ D, T7 @2 b0 m: y+ V7 M* R( n
           indianapolis, in 42619
" t4 ^/ E. a- L3 b本文档不求全面,但力求准确。如果你发现了任何拼写错误或内容错误,请告诉我,( david mcduffe, ( p% S! d( A$ I! U2 R
75530,2626 ),我将改正这些错误,谢谢。
) |( `+ |% v( d6 n! X) G; e9 w$ F2 y
不全面的原因是 TGA 包含了超过六种图像文件格式,而其中的几种较为常用。 我选择了我现在使用的格式并9 [1 s6 h% Q4 o
在本文中加以详解。 如果你需要本文中没有包含的格式说明,你可以与你的 truevision 代理商联系。; I) W' W$ ]* }3 H, o; U% |
对所有的 TGA 格式的文件而言,其第三字节(二进制整数)用来区别各种不同的 TGA 文件。下面列出了该字
; z6 z3 O3 d5 ?+ R1 d, s1 @节表明的对应文件类型:
8 I# k% \9 A' B. n    0  -  文件中没有图像数据5 }; M: H6 l# k1 X% a7 S
    1  -  未压缩的,颜色表图像
  l1 x5 w; Q3 p" Q3 I* p& Z    2  -  未压缩的,rgb 图像: U9 O+ l, x9 J+ o" s, d$ T
    3  -  未压缩的,黑白图像7 |3 ~: M  j3 ~$ W" ]1 P5 T% m8 B
    9  -  runlength 编码的颜色表图像
: D7 T6 \# [0 H6 U. d7 Y; A    10 -  runlength 编码的 rgb 图像
' w. |3 {1 P% j8 s    11 -  压缩的,黑白图像
1 D$ ^' C5 L( a" A    32 -  使用 huffman,delta 和 runlength 编码的颜色表图像/ Z- V4 V# `4 Q! w' [% z5 L
    33 -  使用 huffman,delta 和 runlength 编码的颜色映射图像,4 趟四叉树类型处理。' e' o$ F+ t  F$ @+ o
    本文仅仅描述对应 1,2,9 和 10 的文件格式。
. k; t* b+ V. l( [
! U, w) b$ n2 M- n( \. h--------------------------------------------------------------------------------
( d, v' G6 E* ^7 j: T  G|数据类型 1: 颜色表(color-mapped)图像8 q7 d+ a  F: s. M/ Z* p
|--------|--------|------------------------------------------------------------
1 E% ?3 N  ^  r* y: [- h|  偏移  |  长度  |                            描述$ J; c! R4 R& O% V
|--------|--------|------------------------------------------------------------
1 x  p5 J4 M: T6 `& A! D# {! L" P; d! T# R|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               
+ U) U  c6 ?4 L9 K$ S|        |        |                                                            
1 b) O  Y3 w( F4 L0 N. i. N|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     0 W1 D3 P9 K/ |% m7 K
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     9 T/ `1 _, l7 ^5 q0 A; ~
|        |        |  信息字段。                                     D% J+ O1 B# d
|        |        |                                         : A$ o: g  W9 |* |- d
|        |        |                                                            7 e) e5 {' R, p% l
|--------|--------|------------------------------------------------------------5 j. T9 h- S: z* z& }
|    1   |     1  |  颜色表的类型                                          
: m2 f, `6 z9 O# O; O  Z  d1 n|        |        |                                                            9 ^  w' j$ a+ `% O) f, ]
|        |        |  该字段为表示对应格式 1 的图像而包含一个二进制 1           
. x: f) E$ Y8 k, {|        |        |                                                            & j- @4 G' d" T) ^7 }8 S
|--------|--------|------------------------------------------------------------
7 a& @' O2 k! O% g; I2 M( o9 a|    2   |     1  |  图像类型码                                            
0 L$ n) w5 M7 p, a4 d|        |        |                                                            4 d; M! I8 F$ _
|        |        |  该字段总为 1 , 这也是此类型为格式 1 的原因               
7 r# M9 K3 H/ I; S$ ||        |        |                                                            
* K: u1 L/ A: k5 l' K) [5 _|--------|--------|------------------------------------------------------------3 n3 b3 C6 k) D: `' t
|    3   |     5  |  颜色表规格                                       * @" F6 X  J$ q; g" x. v
|        |        |                                            0 ?. n0 z* f0 L8 x7 g$ a
|    3   |     2  |  颜色表首址                                                
7 B8 a# E) _4 K' T3 R. ]; Z|        |        |  颜色表首元表项的整型(低位-高位)索引               
+ N1 a8 S. R6 h  Z, z* L) {|        |        |                                                            
5 O1 u3 Q) G5 d4 x) a|    5   |     2  |  颜色表的长度                                          1 s$ f( U& U" e
|        |        |  颜色表的表项总数,整型(低位-高位)                  
# C& u* ~$ |: ~( [( z|        |        |                                                            
8 Q* a1 `0 F& G0 p2 u" a|    7   |     1  |  颜色表表项的位(bit)数                                   7 p. C- [$ O& d
|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA
) V; Z: s$ Y. v* M" S. g2 L|        |        |                                     1 R5 _8 g2 z' r/ D
|        |        |                                                            5 V% p6 _! M; [% ]% r
|--------|--------|------------------------------------------------------------
, N) ]5 q7 g7 M* f" w4 l1 n& \% `|    8   |    10  |  图像规格                                               2 h: l9 ]1 k# c- ^
|        |        |                                                            7 |1 `- q% R4 e) D  ]7 ^$ y4 l3 G
|    8   |     2  |  图像 x 坐标起始位置                                       2 G: m) y( d' B% Z0 d. h$ ?6 r& t
|        |        |  图像左下角 x 坐标的整型(低位-高位)值               
# Z; a2 i& b) h|        |        |                                                         
9 q0 L) N3 M) e|        |        |                                                            
% f& X& x- |5 C" W+ E! b( ]) I|   10   |     2  |  图像 y 坐标起始位置                                       
6 \' O) U9 _  }4 K' k" v: |3 K; H|        |        |  图像左下角 y 坐标的整型(低位-高位)值               # z: @$ A3 q  y2 e( I
|        |        |                                                         2 Z# P; c0 Q7 S$ N) U4 J
|        |        |                                                            " K  s- ~" O  L8 i
|   12   |     2  |  图像宽度                                                   
4 g) h  N& [. f9 q/ h( r8 o|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           
0 L. G. f3 Z/ D. e" P|        |        |                                                            
% T) C5 a! k! C+ U|   14   |     2  |  图像高度                                                   
8 r) X' F  i% ~6 n|        |        |  以像素为单位,图像高度的整型(低位-高位)值               * A9 V) {9 M: }
|        |        |                                                            # x0 l! W) p. D) j
|   16   |     1  |  图像每像素存储占用位(bit)数                             3 f, T& S7 x, _
|        |        |                                             
- N5 n8 Y" {1 k3 V2 {8 U|        |        |                                                            
1 e& }8 \$ V. j3 a' J9 W" [|   17   |     1  |  图像描述符字节                                           9 F2 J1 c( X- f1 K8 D
|        |        |  bits 3-0 - 每像素的属性位(bit)数                   6 Z& J5 ~/ K; p) o
|        |        |                                                        
9 }# m5 ]) E& `( ~; n. o|        |        |  bit 4    - 保留,必须为 0                              
0 `( _. M. K- ]: s) w# k|        |        |  bit 5    - 屏幕起始位置标志                           - s9 `+ d' \( {$ N9 p
|        |        |             0 = 原点在左下角                       6 D7 Y. [( Y# q- m
|        |        |             1 = 原点在左上角                         ' i% o1 @% u: `+ J6 S9 H) K8 i
|        |        |             truevision 图像必须为 0                        
6 \5 R+ K4 K8 K5 V! C, t|        |        |  bits 7-6 - 交叉数据存储标志                       ' L& P5 B* t- z% C6 d
|        |        |             00 = 无交叉                                   
1 z% G# U* s: t- A4 A" q2 ]8 ^0 z|        |        |             01 = 两路奇/偶交叉                        ; T4 Y. p4 s  f5 j3 E2 P3 V9 D
|        |        |             10 = 四路交叉                              
8 C$ D- ?& ]% C2 ?) j( h|        |        |             11 = 保留                                   
8 ]7 j7 S* P$ x|        |        |  这一项应该设为 0,不要问我为什么                  
8 E4 h' W' C0 m8 ||        |        |                                                            
/ S) L" G  E" y* C|--------|--------|------------------------------------------------------------
/ [' C. b7 S; b! N% t) E7 `0 b|   18   |  可变  |  图像信息字段                                       
: o3 u7 t5 m0 d) C9 u' \|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   - C7 \# ~& w" `9 j! u9 Y+ J( ?
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以    " j4 n  K5 t4 s0 q2 z
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   
* A& ~$ q" G, c) X# u6 R" |' _6 N4 r|        |        |  之后                               ) h( U) B3 ?! K
|        |        |                                    
/ v2 i; |, i; ?: u9 ~|        |        |                                                            ! j6 P" N6 p' ]0 q/ w& }! r
|--------|--------|------------------------------------------------------------; g; j' p4 A8 H, R$ i
|  可变  |  可变  |  颜色表数据                                                
+ B0 g! M' X7 |: ~) D; s  V0 v|        |        |                                                            / N3 c) r% m) U$ H( R
|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小      
9 M$ M, w5 R# ]- b4 o$ Y|        |        |  和数据项数目决定(在前面相应的说明字段中给出)            1 i% k- U/ b3 c
|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit) ) |0 n) Z# J% t) h" @/ n
|        |        |  被认为是属性位。                           
) _' c" V2 m6 \2 G4 v7 z% ^% ^|        |        |                                                            2 h1 s; K5 X# f( x/ Z9 {9 v: O
|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN," @) v9 o) X$ l) R/ i  [5 E! E
|        |        |              字节 3 表示 RED,字节 4 表示属性           
; a7 W# d7 z$ [4 z1 ?8 |1 _|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               % h' o- u" _! A* _  N7 [
|        |        |                                                            
) l1 M& f9 n% ~# ?|        |        |  2 字节表项中,两个字节分解成如下形式:               / d" h( b, E! \1 i1 {% w
|        |        |  arrrrrgg gggbbbbb                           
9 E+ g1 y! @+ x8 R; D( b|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  % l6 O8 y* ?# Y/ \8 l; }
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。  
, k$ @2 K3 ]0 y1 X|        |        |                                                            4 \$ \/ `9 v, j- H
|--------|--------|------------------------------------------------------------
6 [. T, c, \( ?- M; Y7 f4 l|  可变  |  可变  |  图像数据字段                           
( `5 H9 N& y3 F8 F|        |        |                                                            
: Q# A0 p$ k' N3 s|        |        |  该字段给出了 (高度)x(宽度)个颜色表项索引,每个索引   
  V7 W% X' w3 ]8 |- ?; c% M5 N. ~5 Y* ||        |        |  以整数个字节的形式存储(典型的例子如 1 或 2 个字节)      
! ?% S* A# @& c" @, k9 b6 |! v& y0 ~|        |        |  所有的数据都没有符号,对于 2-字节表项而言,低位字节是     
, \: j, F0 w! H# X/ p) \|        |        |  先存储的。                               & q- B# l( Y. T; Q8 r1 K
|        |        |                                                            ; C! n# ?" z; k
-------------------------------------------------------------------------------; H; n1 k) u/ U
6 G/ |( B; G  L0 d4 K+ f/ N6 t0 {9 T

) `; a# f! v$ a# F9 q! V+ ^. z: O$ p2 _; {! I; l* V0 L/ A3 P
--------------------------------------------------------------------------------5 y. R" V. r- {" p6 o' N
|数据类型 2: 无颜色表 rgb 图像                                 
1 V0 t4 X3 }% F8 @% C|--------|--------|------------------------------------------------------------+ W1 R+ P) p1 z9 T9 V
|   偏移 |   长度 |                         描述                              5 B: S& c0 x5 N3 P# f! N
|--------|--------|----------------------------------------------------------: R0 u! _! {# F/ ~  @" q  J8 q( C
|    0   |     1  |  图像信息字段( 见本子表的后面 )的字符数
; ?& [# d9 ]2 _8 P/ w|        |        |                                          ) T; z, Y5 F# u7 x6 a
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度  w  R  t6 T& R! x, {
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的- |) s6 O4 W- ^+ o) h3 f
|        |        |  信息字段。6 T/ j$ q: P& l# F4 ^' F
|        |        |( G+ U* t+ e) C" Q# Z
|--------|--------|------------------------------------------------------------
6 D* a: k2 T4 V4 y|    1   |     1  |  颜色表类型
4 _0 a$ Z6 A3 o/ i8 R( i. ||        |        |                                                 ! s! L: W. s' s% k
|        |        |  该字段的内容或者为 0 或者为 1;0 表示没有颜色表,1 表示: Y) Q! |( T. y1 @
|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。, m* O: ?9 F; f1 l$ k' C
|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射! H% n/ h( v/ m& @
|        |        |        中的第一种颜色
, d  a0 {8 Q7 j5 ~% k3 G|        |        | ) n' k4 ?4 |, C  H
|--------|--------|------------------------------------------------------------
  l# R% C1 J: |2 Y$ ?|    2   |     1  |  图像类型码
. y. e  L& d& T$ M7 c6 [0 _+ ^8 G|        |        |                                                     
' [% ]5 C5 [. s# N7 a8 l0 X|        |        |  该字段总为 2 , 这也是此类型为格式 2 的原因    1 A2 y0 s5 f) N$ N9 O" `6 S3 ]
|        |        |  + B8 L9 ~' r# ?; Y4 y" a; h
|--------|--------|------------------------------------------------------------' _8 g( t& N) w* g% q* X! n/ h0 n
|    3   |     5  |  颜色表规格$ h( A% G& k& |- @7 Z: E
|        |        |                                                         # |1 E- q5 }0 m' |. S. N; h
|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下
  R" u, F4 E9 Q# [|        |        |  1 A5 X4 ~6 C, A+ a! o& p* n
|    3   |     2  |  颜色表首址
+ y' P3 D! B3 y/ n# ~|        |        |  颜色表首元入口的整型(低位-高位)索引  A0 i* }4 X" y) T/ n  B, ~, e! H
|        |        |                  
0 \! R- `% y% C) ]9 O# n|    5   |     2  |  颜色表的长度
/ F0 @* G9 d6 ], S# a* d# X& j1 u|        |        |  颜色表的表项总数,整型(低位-高位)     . ^+ [5 d- O" z6 Z  Z
|        |        |                                   
7 h2 S% G1 v9 T" \/ c5 {|    7   |     1  |  颜色表表项的位(bit)数
  b5 `0 U3 H5 r. n' T9 K; B% n|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA
' C2 o/ ]# W, A  T2 _$ n|        |        |  
1 B- @  |1 U5 t, a' e, U; c2 x|        |        |                                                           + Z# ~5 V/ ]7 z5 n' |& V7 g
|--------|--------|------------------------------------------------------------9 }$ u5 E0 q! v7 ^% n6 D
|    8   |    10  |  图像规格. Z* ~! N7 s# E% J3 U, P- w
|        |        |                             
+ ~/ K, \) b% q8 }|    8   |     2  |  图像 x 坐标起始位置       " g4 R+ ^8 T, _
|        |        |  图像左下角 x 坐标的整型(低位-高位)值
( R" y- w% R$ m: ]|        |        |  
( b# L5 l* N, d1 Q|        |        |% z9 ^8 ~  a, c8 M. w2 U. f% `
|   10   |     2  |  图像 y 坐标起始位置
; h! q( w$ y/ Q9 G- d|        |        |  图像左下角 y 坐标的整型(低位-高位)值
- w/ w2 u* O6 f$ R9 R|        |        |  ! t. i8 I2 e. a$ G2 o4 z
|        |        |9 u& |  Z" A" `+ E  R
|   12   |     2  |  图像宽度
3 M8 ?0 ?  i  g8 q- i. t+ e4 @|        |        |  以像素为单位,图像宽度的整型(低位-高位)值
- D" B" E/ x9 ^|        |        | + |+ c1 L8 o) W$ S
|   14   |     2  |  图像高度6 E7 ^* F! @7 Y2 w4 r
|        |        |  以像素为单位,图像高度的整型(低位-高位)值+ t8 C/ H! o0 g& l
|        |        |( |# f5 \" N9 Z! J6 v* L! x3 j- y
|   16   |     1  |  图像每像素存储占用位(bit)数9 s  @, ]; Z, N' K' d  i9 ?
|        |        |  它的值为16,24 或 32 等等决定了该图像是 TGA 16,TGA24
7 x3 C& u' A7 n|        |        |  TGA 32 等等' K6 R, H) I$ P1 c2 r( p
|        |        |
1 D3 o% g0 T5 n! d8 `|   17   |     1  |  图像描述符字节, I! |0 ^# M. T6 w) h4 @8 h' o: w
|        |        |  bits 3-0 - 每像素对应的属性位的位数;对于     TGA 16,
" ]: r( [8 @0 X: w1 H# I|        |        |             该值为 0 或 1,对于 TGA 24,该值为 0,4 [. v5 m$ a7 w+ s$ n
|        |        |             对于 TGA 32,该值为 8+ ]3 f8 M" O- ]# V  U( J& T4 \  K+ w
|        |        |             . H9 J* M- B+ _0 [2 e  {! X5 l# x+ k$ j
|        |        |  bit 4    - 保留,必须为 07 `. j6 M. B5 M# R
|        |        |  bit 5    - 屏幕起始位置标志/ |: c3 A; y/ j
|        |        |             0 = 原点在左下角
+ K1 @5 H# r2 T& t# Y|        |        |             1 = 原点在左上角
9 O! ?1 L" ?4 C9 G, i! Y|        |        |             对于 truevision 图像必须为 0
. n. k" {6 g0 m|        |        |  bits 7-6 - 交叉数据存储标志+ c$ n1 [" m% o# |  J1 s$ C4 h. W
|        |        |             00 = 无交叉                                   
3 e6 z1 p. M. F, g2 b7 r|        |        |             01 = 两路奇/偶交叉                        & n1 A8 f# Q( ?: a. I
|        |        |             10 = 四路交叉                              
+ D  p8 |3 G6 s+ c- H* ?|        |        |             11 = 保留6 t$ k* I4 b& G% Q* W$ O) e+ {" G
|        |        |                                                            
6 d5 Y2 V) i' c, @3 u( X4 T|--------|--------|------------------------------------------------------------- l( z2 h7 |- G
|   18   | 可变   |  图像信息字段                                       5 n4 b3 R/ Z. U. L
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   
0 Y# r- y5 k7 h3 z  X: b8 G6 h|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
) E2 g4 P. @. Q0 @) I: C' \|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   
5 y: Q: y% r0 z7 V2 F8 {|        |        |  之后                               0 N9 e$ h. b4 c
|        |        |                                                              M+ _; C! V1 ^
|--------|--------|------------------------------------------------------------& u3 t; @7 V  f; z3 C& k
|  可变  |  可变  |  颜色表数据                                                
. n) {7 d5 _: i2 m) ?. C5 C6 E# d0 K5 Y|        |        |                                                
: g3 `  P* m3 s8 o& i|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取
4 i$ ~- K: `7 ?|        |        |  图像颜色表规格中描述了每项的字节数,为 2,3,4 之一) c& A! y3 Z2 H; L
|        |        |  
2 ^. m" |. _3 |3 z4 g* m% K|        |        |  0 x: M7 ~! `4 R) E) t
|        |        |  
# ]8 o' x. z0 A$ b! b|        |        |  " Z1 a- ^5 h( ^' _( K' N
|--------|--------|------------------------------------------------------------
' z+ i6 v9 ?& }9 v1 l|  可变  |  可变  |  图像数据域& `+ M: d7 l/ x% ?% w* D/ n$ W* x
|        |        |                                                   
" O9 r. b( E( s( y8 L# T" ]|        |        |  这里存储了(宽度)x(高度)个像素,每个像素中的 rgb 色值4 }. x  z' N: D- R" U' @1 b
|        |        |  该色值包含整数个字节* E% s, W1 }# A% |# |
|        |        |  
5 Q9 P- Y3 }& q8 d|        |        |                                                           : ]9 r4 E; ]/ g8 b2 x( j. B
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               ! c4 T7 z- `* x. w) V
|        |        |                                                            + ^8 W, d# O6 x9 `( Y5 z
|        |        |  2 字节表项中,两个字节分解成如下形式:               ( ]7 m6 T4 |2 K; U& B  U' I, ^
|        |        |  arrrrrgg gggbbbbb                           
* N" \: P! Y& e+ w|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  2 p& w1 @7 x9 M, G
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位* n+ O( T/ q- J
|        |        |                                                          " ~, \) q. U  e' W! x. l, s
|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个& W3 p7 |$ g1 D5 S& m
|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象1 `1 k( c$ {! L5 ^8 s- n! M# f; J
|        |        |  TGA 32 类型的图像那样存储( O+ n" q4 _: D! ]
|        |        |  
& d6 M: X1 L9 V|        |        |                                                         2 D& w( q0 h( N# ~
--------------------------------------------------------------------------------, m% J; G# Z( p
* J' z* H$ A  P5 R( ?; t! q
8 W7 i, ?7 _! j5 R. M
! D" n7 f) l9 m/ z; k! y
* b. O6 B/ k( Y  V( q, b
--------------------------------------------------------------------------------
* k5 ]* X$ W; V|数据类型 9:  runlength 编码,带颜色表的图像
0 p3 t! [3 w" e0 K4 a|--------|--------|------------------------------------------------------------- N3 F$ p4 y7 |  t5 m' Z9 R7 j- S
|  偏移  |  长度  |                            描述% a- ~7 I" x; `* H0 x; S
|--------|--------|------------------------------------------------------------
3 [7 w3 `5 M# A. O" E; I9 X6 M6 u|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               + e. y( t5 a) r
|        |        |                                                            
1 u/ p2 z' _  o+ A$ @; n|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     ; l& S" ~5 A$ {
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     
6 a$ k9 d/ M) x) ^6 i4 @: O|        |        |  信息字段。    % j3 E* |2 J; F9 Q, z+ q
|        |        |                                                            
; t/ ], {# J4 I  U|--------|--------|------------------------------------------------------------5 @! q" @+ p9 I. ~
|    1   |     1  |  颜色表的类型                                          
+ r0 I) q7 f: j; }|        |        |                                                            
, f" a- f2 v3 e: ^8 ^  b|        |        |  该字段为表示对应带颜色表的图像而总为 1
9 D9 {3 b) {3 I" D& W: A9 `|        |        |                                                            
8 f/ E& g; z: A|--------|--------|------------------------------------------------------------# }8 k' M$ r( s
|    2   |     1  |  图像类型码4 ]) c$ W: @+ k) {" n$ }. J) G" L
|        |        |                                                            . k  _$ ]/ ]* ?% m; J7 X1 w
|        |        |  本类型该字段为二进制 92 O9 P! h) l) K2 A, z" m, X
|        |        |                                                            0 I" u6 w, m; R
|--------|--------|------------------------------------------------------------
' s' O# G% `& [. [* S# x|    3   |     5  |  颜色表规格
$ x+ a% k6 C1 n+ r|        |        |                                                         
" y2 O& o! |  u7 C9 k0 D0 n; T|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下9 K; J! X+ L0 D5 O/ M
|        |        |  , h2 G' u/ Q' i. f
|        |        |  : ?1 l# \# a; C# G  i) K; _
|    3   |     2  |  颜色表首址) U, S# |! z' ]0 V2 o
|        |        |  颜色表首元入口的整型(低位-高位)索引0 C: Q6 j0 j+ D6 V! v! h
|        |        |                  " v+ o8 H+ D$ R
|    5   |     2  |  颜色表的长度
: h% I6 n" R# \+ D+ G3 X|        |        |  颜色表的表项总数,整型(低位-高位)     
/ o, h! F1 u3 C$ K4 K% m|        |        |                                   " K. E- u: y7 b
|    7   |     1  |  颜色表表项的位(bit)数
. a3 y/ Y6 |9 S, v2 F# H. M|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA
% _5 |* N4 q. a3 G) f|        |        |                                                           ; r- w! d1 }9 ^# {6 d2 Z% Y
|--------|--------|------------------------------------------------------------, O( d! W# a2 M" d" u, V! f
|    8   |    10  |  图像规格                                               : M& E9 y8 t" J! a+ I! Y2 N" S
|        |        |                                                            
& g4 x9 y5 x2 D|    8   |     2  |  图像 x 坐标起始位置                                       
! H# G( w3 S$ s7 X: A( Z1 ^$ R1 v|        |        |  图像左下角 x 坐标的整型(低位-高位)值               8 [# u* V( q  @: K
|        |        |                                                         
& ^7 c+ n. W: c0 G9 g, c; T6 N|        |        |                                                            ! @4 [+ J1 M  H4 f6 ~
|   10   |     2  |  图像 y 坐标起始位置                                       : \: [9 g- G+ X8 m% d
|        |        |  图像左下角 y 坐标的整型(低位-高位)值               # }2 J% U$ i+ S: O+ E7 k/ S# z
|        |        |                                                         2 L, f, f9 ^4 |9 w1 h" \! t
|        |        |                                                            ) _' B; Q& P8 B# d6 p# c
|   12   |     2  |  图像宽度                                                   
- S; t( |  m7 H& W7 |0 O|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           + n, r1 j! N- F  X: O& m/ g
|        |        |                                                            
3 q, ~! b1 u/ l7 o) `3 \7 h|   14   |     2  |  图像高度                                                   # F$ G3 M0 U+ V" p  ?4 k' ~% n
|        |        |  以像素为单位,图像高度的整型(低位-高位)值               1 o6 d/ m# l. \& a, i7 x
|        |        |                                                            : {. _" k* U% o+ L0 c# f& _8 `) @
|   16   |     1  |  图像每像素存储占用位(bit)数                             1 M; I$ s1 x/ V( w/ S
|        |        |                                             
+ m7 A, A6 a# }|        |        |                                                            
: {6 a( i9 L/ L6 \5 m, a|   17   |     1  |  图像描述符字节                                           # Q/ x6 S& Q0 F% Z- g0 \
|        |        |  bits 3-0 - 每像素的属性位(bit)数                  
5 ^: v( z! [* R$ y3 Y6 x" |# d4 O% D4 t|        |        |                                                        8 @: v3 d! Q/ j- L- Z, t
|        |        |  bit 4    - 保留,必须为 0                              
: o6 C: @9 A  E, A! U|        |        |  bit 5    - 屏幕起始位置标志                           
  R$ |0 r3 x0 B( Z+ H* x|        |        |             0 = 原点在左下角                       0 ]) q& c" Q3 N7 [( M
|        |        |             1 = 原点在左上角                        
/ k9 X" }2 ^& O- \|        |        |             truevision 图像必须为 0                         0 x0 \8 c' q* t# m6 G
|        |        |  bits 7-6 - 交叉数据存储标志                       . r- Q* e# P8 |" w7 \3 B
|        |        |             00 = 无交叉                                   
0 X+ }4 w  ~5 O  [3 N& T|        |        |             01 = 两路奇/偶交叉                        
% q5 ?3 d" M  a; N6 i) i, h7 c|        |        |             10 = 四路交叉                              
2 M$ u1 L2 a* l|        |        |             11 = 保留
2 T4 u9 k" N+ Y% Q/ g|        |        |                                                            
- O! m! e3 x# ?0 C|--------|--------|------------------------------------------------------------
9 z7 A6 W( R' X+ `+ S|   18   | 可变   |  图像信息字段                                       
: }" G) ]2 p! d; ^0 H+ E8 H( {6 v|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   5 P! ^2 u+ |) t) ]. C! W, L
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
5 \* j! z* J0 U" ]7 u|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   ! w  Y6 O3 ^6 |* A! ~/ ^
|        |        |  之后. a  y% M- M9 H
|        |        |                                                         
4 Z1 O( `9 F0 V1 }' Z  Q# u|--------|--------|------------------------------------------------------------* p8 n% f% G& M& Y( a6 ^7 Z8 C
|  可变  |  可变  |  颜色表数据                                                
" ^  J5 u# D* y5 v. s# \3 i|        |        |                                                            ; Y5 g1 r: {$ Y3 s1 @! h6 j
|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小      : z; d& v7 ?' v# z& E
|        |        |  和数据项数目决定(在前面相应的说明字段中给出)            - U6 h, t0 t( ]" l( y" g8 ]9 O
|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit) 0 q4 C( H- F( ?, K& g, I
|        |        |  被认为是属性位。                           7 k0 H# @) o/ m$ |+ P" x
|        |        |                                                            
! Z  g) X$ V2 k( x# s|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,, Y( l+ x5 i# ~, ^; @# M. y  u
|        |        |              字节 3 表示 RED,字节 4 表示属性           
7 S: a7 k6 F& M) z# y: ~|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               - Y% T9 e! E$ S$ ]& I4 b0 ^4 B" S
|        |        |                                                            % i( S3 S3 W. r4 t: @
|        |        |  2 字节表项中,两个字节分解成如下形式:               
3 o5 q' P+ l8 I4 X0 g% T1 [6 N|        |        |  arrrrrgg gggbbbbb                           
) s( H! b  J* \% l2 a  T3 f/ D# v|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
1 |$ o: i; X! W$ S|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。
, K; ~# y& F& B: Q0 c7 `|        |        |                                                            ) {5 j. e3 r. Q+ K5 I0 c
|--------|--------|------------------------------------------------------------( V& F7 {, c' a  t* B; D* U+ |
| 可变   |  可变  |  图像数据域
% {( L8 k. i+ \; m|        |        |                                                              l& r2 E- L9 i) H
|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放7 e8 j  l/ Y" M* J8 @
|        |        |  在数据包中;有两中类型的数据包:run-length 数据包,
+ U$ X3 @7 g+ h9 T2 Y|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,
/ I- b' |) a3 X$ x7 Q$ Z, m|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域' I' V: S) N! K; l/ z
|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当( H/ a# b( m2 G' H+ _( L; d) P! T
|        |        |  它为 0 时,表示未加工的数据包
8 W8 t9 ~9 ~" W' P1 g/ v! }/ f|        |        |                                                            * I6 A. a! K) x" }- n4 K9 h& h3 J
|        |        |  对于 run-length 数据包,头信息含义如下
4 X6 F. a+ A: p$ B; R" O; x|        |        |      __________________________________________________    3 O9 d$ L1 F5 p9 G" N( D
|        |        |      | 1 bit |   7 位的重复记数减一" ^/ t/ @5 B% |2 Z8 C! u6 U* `
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |
: a7 X0 A+ s6 \# W+ ]$ U! ]|        |        |      |       |   的运行大小为 128,(译注:原文为     |3 ^1 A$ e/ C  e! u
|        |        |      |       |   the largest run size)          |  0 x* G7 f3 n' K$ h
|        |        |      |-------|----------------------------------------|
8 E) f; ~, }: {* \* m% x|        |        |      |   1   |  c     c     c     c     c     c    c  |
" O; \6 E, k& K5 R* Q1 w|        |        |      --------------------------------------------------
9 l5 u: f! {# o2 k* I  u|        |        |                                                        
, P* v" m! s3 L4 t3 n6 o8 o% T|        |        |  对于未加工数据包,头信息的含义如下2 [: C% J7 j. g5 i/ b' k4 p$ \2 r- f
|        |        |      __________________________________________________
( T2 b* N8 c2 Y; Y|        |        |      | 1 bit |   7 位的像素个数减一                   |
# l: \+ i  V9 B  y$ g% `- W7 h|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |
0 j5 c) ~3 f5 I9 W* h|        |        |      |       |   类型的一个数据包中像素个数不能大于   |% y$ _* u) }/ i  ^* b; i3 K) k
|        |        |      |       |   128                                  |7 O# y. z% j3 |# E+ k
|        |        |      |-------|----------------------------------------|; P2 w+ ?. t) @$ p
|        |        |      |   0   |  n     n     n     n     n     n    n  |* P6 i& d7 @: t! @7 R
|        |        |      --------------------------------------------------' S9 l; J2 W  v
|        |        |                                                        
) L2 }. y) I# J|        |        |  对于 run-length 数据包而言,头信息之后是一个简单的
2 \! c4 `6 b" q# }( Q' k6 @8 F|        |        |  颜色索引,且假定该索引被重复头信息中低 7 位表示的次数) ^* C1 v' M2 A2 _5 l  a
|        |        |  run-length 数据包也许会跨越扫描线' A; L' g# i% u7 N
|        |        |  (扫描线起始于某行结束于下一行)/ e: g2 Q& d0 U4 N
|        |        |                                                        2 E. S1 ^6 n# ?2 S: D/ B9 i
|        |        |  对于未加工的数据包,头信息之后是颜色索引(数值由头信息
7 y- D" j, o& M+ I0 H* p  }) w|        |        |  给出)该类型的数据包也可能跨越扫描线
# U0 o: {( g4 N$ ~* R|        |        |                                                            3 i; u: E: |0 }% g) e
--------------------------------------------------------------------------------, l  P" q: Q# d( T) u+ Q& ~

* g$ b8 ]3 s2 f+ K9 F& E
& K, c! z# g, x8 u: u
. F. X$ r: r6 V- n. Y4 u
. [+ _7 W/ ^& j; [5 ]- V--------------------------------------------------------------------------------
1 O" n6 I  s: X% g/ }1 c|数据类型 10:run length 编码,rgb 图像; }* G+ H% U! n; Y; y" `3 e. s( y
|--------|--------|------------------------------------------------------------
7 {4 W5 s: P- j1 t6 H& z% Q9 Z|   偏移 |   长度 |                         描述                              # Z+ S1 Q# w. R3 m4 \
|--------|--------|------------------------------------------------------------: n, P9 [( N7 Q  e+ t, e
|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               8 x- e- C, ]3 }  }+ _
|        |        |                                                            
$ X* n! t. k+ i1 y' Z) F( n|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     - L/ u- \1 @* L2 [9 M! A* p/ W
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     
2 l; J( S! V' R& Z3 K, {6 [|        |        |  信息字段。   
, D+ s! }7 n% Y" ?( n|        |        |                                                            
. E  `/ |" Y  N; d5 E8 L4 K|--------|--------|------------------------------------------------------------; R: M! s7 s4 W
|    1   |     1  |  该字段的内容或者为 0 或者为 1;0 表示没有颜色表,1 表示
5 j% z0 X$ G7 x|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。
8 l- p/ y0 [! M* \: y|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射8 M5 ~  z$ c! x" N7 h: K: z
|        |        |        中的第一种颜色
; F' Q* H: e; g|        |        |                                                            
$ W( l: ~$ F6 t1 T$ A9 `|--------|--------|------------------------------------------------------------* P. ~9 C/ c) L& y- N
|    2   |     1  |  图像类型代码, g* y! T5 @6 x. j3 K0 P* o  S+ R: e
|        |        |         
$ L" B; ^$ J4 V) G- ?4 N. U( \|        |        |  本类型该字段为二进制 10  y8 C  {. t2 I6 ^
|        |        |                           I5 I1 J1 D& a: ^
|--------|--------|------------------------------------------------------------
7 u) V' b* k* t/ X) c- d+ y1 R|    3   |     5  |  颜色表规格8 r- B/ G  b/ P
|        |        |                                                         
; W; L3 a. Z+ q7 K|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下
/ n6 v; b, ~& G) q8 m) S2 H- W|        |        |  
: H6 ~5 l0 }& C# P# V- [. _|        |        |  
% ^: V& t$ x  f2 x4 ~|    3   |     2  |  颜色表首址) O2 b+ J! @+ @& M
|        |        |  颜色表首元入口的整型(低位-高位)索引
$ J' M' A! `* g' |$ n|        |        |                  , F+ b# s( X6 Q: E: ^
|    5   |     2  |  颜色表的长度9 W: C2 ]5 X" K! q# a' b
|        |        |  颜色表的表项总数,整型(低位-高位)     & l8 T! U7 D$ \* u
|        |        |                                   ; z5 w1 n0 `! l3 l: N- {
|    7   |     1  |  颜色表表项的位(bit)数9 {  `5 P5 g+ B5 p2 a3 j
|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA
1 w' r7 U, \/ n9 N|        |        |                                                            
/ o+ b) f8 ]8 C- B* Q|--------|--------|------------------------------------------------------------7 O3 o( V5 P! `
|    8   |    10  |  图像规格                                               ' h0 F. b/ l- i: Y  U
|        |        |                                                            
* C/ I! e+ H9 y( F8 ?" p|    8   |     2  |  图像 x 坐标起始位置                                       
. E+ ^5 K2 U* X8 m  \  o|        |        |  图像左下角 x 坐标的整型(低位-高位)值               ' Q7 n% }1 w7 n) O& R' r
|        |        |                                                         5 {( g  B( u- a# G1 c
|        |        |                                                            
: a0 ?  |3 B  t# d|   10   |     2  |  图像 y 坐标起始位置                                       
; M  i+ X6 @8 @" ~4 W|        |        |  图像左下角 y 坐标的整型(低位-高位)值               
; I+ W: v& R! H1 P. I* N1 ?* q! Q|        |        |                                                         
' u  z) I6 f/ L+ F2 f$ u2 k1 N) K|        |        |                                                            
% @" p$ `; J( G3 a! C|   12   |     2  |  图像宽度                                                   , n. w. Q' ^8 @* m: q  K; S
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           
/ O1 n2 m% D& j|        |        |                                                            
  f( K7 n0 H& z|   14   |     2  |  图像高度                                                   
  m; g& E- t0 M( n' q! y9 _- \|        |        |  以像素为单位,图像高度的整型(低位-高位)值               4 q& W4 J! x& x4 m
|        |        |                                                            
* U6 Y" _7 K5 b' O8 P5 w! T8 T|   16   |     1  |  图像每像素存储占用位(bit)数                             
$ v) A& P/ n! [/ O" H|        |        |                                             , [4 V5 i& r2 k
|        |        |                                                            
/ f) P  i3 _6 T" H' r' L|   17   |     1  |  图像描述符字节                                          
! y! ?3 I5 g8 V; y|        |        |  bits 3-0 - 每像素的属性位(bit)数                   & \( `7 ]; U, p& T
|        |        |                                                        % H# ?5 c; T6 H7 R; A2 N
|        |        |  bit 4    - 保留,必须为 0                              
) n. ]8 J* k- E9 n0 S% X6 i6 X|        |        |  bit 5    - 屏幕起始位置标志                           
: R# m/ h) J8 ^. w1 R|        |        |             0 = 原点在左下角                       # ]$ E, `! C3 L4 c1 p$ v2 c+ p
|        |        |             1 = 原点在左上角                         * z+ v/ G% l2 {- R- S/ G
|        |        |             truevision 图像必须为 0                         0 H! d: J% Y- K  e+ k' O$ \: u
|        |        |  bits 7-6 - 交叉数据存储标志                       
& U8 t6 [5 v  G) E* c6 M  H( ^3 Y|        |        |             00 = 无交叉                                   
. n( `3 \$ K* ~5 w: q- _|        |        |             01 = 两路奇/偶交叉                        
9 d& z& `: J4 t% K2 p' e|        |        |             10 = 四路交叉                               / z- i+ R8 A3 s' x" q
|        |        |             11 = 保留                                   
% v; K% b( U# E1 U  d|        |        |                                                            ! b. }4 s( ]% i
|--------|--------|------------------------------------------------------------8 F  Q) h% M3 e! v  V
|   18   | 可变   |  图像信息字段                                       
6 m8 Z, s5 ~5 G: ~# n% I# d! r|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   
! S5 P3 F8 }% O) R" ||        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
/ `; b  S8 m# m! H% u|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据     m/ }6 W9 O4 \$ F; d
|        |        |  之后
. b' f+ @9 N6 z& x|        |        |                                                            
. ?1 o6 y. L' M7 ]; X|--------|--------|------------------------------------------------------------; v+ d5 F- n9 q( e) b1 [4 g% _# l" f
|  可变  |  可变  |  颜色表数据                                                
* q9 t, q! d+ Z  d|        |        |                                                
0 P; w0 W. g$ ]6 C5 P8 g|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取, _. n' n2 M/ x/ U
|        |        |  图像颜色表规格中描述了每项的字节数,为 2,3,4 之一
) C: ?! c+ @" J0 ]|        |        |                                                            ) g: R& A, Z$ l; `- p6 j1 o
|--------|--------|------------------------------------------------------------
  A1 F- P6 J4 b% g| 可变   |  可变  |  图像数据域
$ W  n' T1 g+ T4 j- ~5 \; P* {" S) L& L|        |        |                                                            ( C# S* C3 C! g2 c0 X3 P8 Y7 n
|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放/ O  B9 I1 W, G1 g% w
|        |        |  在数据包中;有两中类型的数据包:run-length 数据包,5 W5 V8 v+ V" k
|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,
: {# e; I5 w6 o2 W3 l+ K|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域4 M. V- j' [- @5 X& z3 v
|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当
' |; b1 a' A( e+ Z: g; p|        |        |  它为 0 时,表示未加工的数据包
8 [3 t* [# _* V* ^|        |        |                                                           4 h7 r8 `. @$ z2 J  @6 e  c
|        |        |  对于 run-length 数据包,头信息含义如下- R8 W8 o5 p* a9 z3 S9 L, a4 f
|        |        |      __________________________________________________    : ~4 N8 m% U! M3 z
|        |        |      | 1 bit |   7 位的重复记数减一
2 z7 J# s2 Z6 G, g|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |
* Z- E- d7 M- V* x; U9 G' f|        |        |      |       |   的运行大小为 128,(译注:原文为     |0 K! O$ D5 `# ]3 @5 g+ A3 k
|        |        |      |       |   the largest run size)          |  9 e& L7 e4 J5 f" W& ~# B
|        |        |      |-------|----------------------------------------|/ X, i0 q/ g8 B, m* B* u
|        |        |      |   1   |  c     c     c     c     c     c    c  |- u5 t$ h" m+ K, R5 Y- g# J& L3 \( s
|        |        |      --------------------------------------------------
( h9 L8 m8 @2 d$ z5 E0 V4 H6 ^|        |        |                                                        + R: N* ?8 k6 p4 A
|        |        |  对于未加工数据包,头信息的含义如下
* N1 N# y) D  |$ d$ U|        |        |      __________________________________________________+ c9 Y! S  a8 o! {* f
|        |        |      | 1 bit |   7 位的像素个数减一                   |
% C: e' W* [) x# w|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |( L" n1 k6 l& P" q1 L9 I
|        |        |      |       |   类型的一个数据包中像素个数不能大于   |
3 E; Y3 r4 x) B  p. ~1 }+ {6 R|        |        |      |       |   128                                  |. L! O+ z2 _  }. N9 D0 Z
|        |        |      |-------|----------------------------------------|
4 Y6 p8 d% L& _, ], T- p% e& t|        |        |      |   0   |  n     n     n     n     n     n    n  |
* D  h1 o2 g9 j4 A' ]|        |        |      --------------------------------------------------
( p* X/ j, |7 }) A|        |        |                                                            8 }0 D+ ?, \4 H6 _# r' V" J( `
|        |        |                                                            2 r2 b& }; h' h* I; @/ E, M: \. |& @
|        |        |  对于 run length 数据包,头信息之后是一个简单颜色值,) P4 N# z. K, s1 u& M: T1 M/ K" h
|        |        |  且假定该值重复的次数为头信息中记录的数
! n9 \; Z# N* Q0 C1 H# B; _|        |        |  run-length 数据包也许会跨越扫描线
4 ~3 j: c, d  V+ b) `|        |        |  (扫描线起始于某行结束于下一行)
  X) l" Q4 d7 b5 i) D|        |        |                                                      
0 i$ w. ?4 E4 E: r2 t|        |        |  对于未加工数据包,头信息之后是颜色值(数目由头信息指出)
1 U0 ?& d" q* [8 E  f: a( i9 v|        |        |  9 R' j+ O( m0 O0 `1 p9 [$ \9 J9 v
|        |        |                                                - ^! a; h& L: P. V4 y$ F8 w
|        |        |  颜色表项自身有 2-字节,3-字节或 4-字节几种大小(分别8 `' P& C& P7 e! u% P' P
|        |        |  对应 TGA 16,TGA 24 和 TGA 32)形式如下:
3 B) n" S: b6 J- o) n6 S|        |        |  
7 d# o6 L0 ]2 f) s|        |        |            ' r& ~( n0 C# T
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               8 t! F% o% I( C
|        |        |                                                            1 @: R: O, a: ^2 q+ E7 D. c
|        |        |  2 字节表项中,两个字节分解成如下形式:                 n" K, [9 i1 W: h: C
|        |        |  arrrrrgg gggbbbbb                           
. o' z9 F1 {# t1 Q|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
# Z7 O6 k  x8 `, k% ~|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位' v- a$ ~$ H" @& z
|        |        |                                                         
) C3 R$ D0 a. Y# K# t/ K4 v|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个, ^3 z& d# C0 D9 g
|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象
% C! t* i& b9 X# Z0 m|        |        |  TGA 32 类型的图像那样存储
- ?( ^! h* c) O|        |        |                                                            
' O4 ~4 o" A0 ^: K* }4 n--------------------------------------------------------------------------------3 B6 V- V6 {4 {7 c# Y

" ?7 W) D6 |" S2 R2 k<完>
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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