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

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

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

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

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

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

原文; y( o5 J4 n3 z3 l/ ]
http://dev.gameres.com/Program/Visual/Other/TGAFormat.htm5 U) C& N3 c, Q6 H) B5 x. k* `7 E
  
! T+ ?) K# ^' E/ N$ }! X根据david mcduffe编写的TGA文件格式资料翻译而成9 D& {) \3 Q6 X& S
 5 X+ Q( g8 K. g. p$ n/ b
本文档是为满足许多对 TGA 图像格式的了解需要而创建的。本文摘录自truevision 技术指南的附录 C,如果
; p6 D! J3 _9 `8 J8 N0 j9 A* c需要更进一步的信息,请致信以下地址:
0 z" B! {0 s) V- t7 c. D' _, ~( k& h
           at&t
5 {+ V' H0 T( w4 ~& ?  ?1 T           electronic photography and imaging center' |/ b& e0 {. ^$ w4 B2 o! N: ^
           2002 wellesley ave.
& J0 x! A8 n6 ?# E# D           indianapolis, in 42619
6 X9 y  U0 n( H' Q' @2 }6 ^) k) Y本文档不求全面,但力求准确。如果你发现了任何拼写错误或内容错误,请告诉我,( david mcduffe, 5 E" b+ z+ ^% t8 f- ~4 g
75530,2626 ),我将改正这些错误,谢谢。2 ?) s7 \  u' U# x$ [3 C
0 u2 l9 Z/ V7 X* B
不全面的原因是 TGA 包含了超过六种图像文件格式,而其中的几种较为常用。 我选择了我现在使用的格式并1 j# I( M  ~; m5 p8 \
在本文中加以详解。 如果你需要本文中没有包含的格式说明,你可以与你的 truevision 代理商联系。
6 G4 U# g* X1 `0 c/ W  |' I对所有的 TGA 格式的文件而言,其第三字节(二进制整数)用来区别各种不同的 TGA 文件。下面列出了该字' w" w) D( b, s8 C
节表明的对应文件类型:
  s6 Y- t# k( I4 i/ T) U( X    0  -  文件中没有图像数据9 |9 x7 }8 z5 ^$ q( t
    1  -  未压缩的,颜色表图像
4 L6 t9 R6 ~! d+ D    2  -  未压缩的,rgb 图像( S7 w/ j5 Z  w* D" L' _$ Q5 i3 m
    3  -  未压缩的,黑白图像
, N4 p" d+ ?- ]) @7 B4 f6 G: R    9  -  runlength 编码的颜色表图像
- f+ k4 `* Q& b& S, }    10 -  runlength 编码的 rgb 图像
; W; n0 H2 K! O0 z( D# `    11 -  压缩的,黑白图像
; Y8 G( i6 a. V    32 -  使用 huffman,delta 和 runlength 编码的颜色表图像
( u% C3 c' F+ O: z9 s4 k4 w: Y; C2 Z    33 -  使用 huffman,delta 和 runlength 编码的颜色映射图像,4 趟四叉树类型处理。
. m  `: }7 e# h% |* [. M    本文仅仅描述对应 1,2,9 和 10 的文件格式。
$ q8 I: n; ]* f7 G6 J
" a' b, Y# R: C--------------------------------------------------------------------------------5 }6 J5 Q5 \) x5 S0 \! i  E
|数据类型 1: 颜色表(color-mapped)图像+ T9 f. n$ P) f% p
|--------|--------|------------------------------------------------------------( _5 K0 O- z4 i6 s4 v  V
|  偏移  |  长度  |                            描述
' j7 s; Y! E" {5 e$ o& z|--------|--------|------------------------------------------------------------
' k1 D( V- }% X3 j|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               
5 w9 R. G0 a' J# g# N$ j|        |        |                                                            
9 z9 E1 x8 A( R9 H+ c3 _|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     " X" i2 r% e5 C& _- |
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     
1 s! L7 |# _4 g& m% o|        |        |  信息字段。                                   & F4 I8 B) s; ]1 Z
|        |        |                                         
3 q8 z- @9 {2 t- g6 Z|        |        |                                                            - ]4 U0 F( Z0 s7 E7 O  g/ l
|--------|--------|------------------------------------------------------------0 _1 I. [( w5 \3 f* K  b& ?, E1 ^
|    1   |     1  |  颜色表的类型                                          
8 x1 ^( ^7 s5 j0 u5 @|        |        |                                                            ( L. S9 [  O) K) d$ B' X2 M
|        |        |  该字段为表示对应格式 1 的图像而包含一个二进制 1           
0 |8 S" {5 ?# y' ?|        |        |                                                            
$ C$ w, a' B1 l% a: K( _5 Y5 a|--------|--------|------------------------------------------------------------
; b- p- {3 j8 }5 e8 ^7 r; b- q|    2   |     1  |  图像类型码                                            
: d4 J' y  O7 d  \4 Q|        |        |                                                            # T6 a) m1 B1 |' E
|        |        |  该字段总为 1 , 这也是此类型为格式 1 的原因               2 k% X+ c+ y/ u5 c) q: a9 y
|        |        |                                                            
) j' ^" `, m5 t  B+ `( F$ ?|--------|--------|------------------------------------------------------------% L) p5 h% j; g5 X( s; v
|    3   |     5  |  颜色表规格                                         Z9 x5 U, S9 G
|        |        |                                            
! J5 @5 E" ]) l+ s|    3   |     2  |  颜色表首址                                                
7 C5 Z' u2 [# Z+ W1 q|        |        |  颜色表首元表项的整型(低位-高位)索引                1 i" `2 j0 Q# }& R; s
|        |        |                                                            
3 G* j: T# V  |: x|    5   |     2  |  颜色表的长度                                          
% i. ?9 a  ]4 V! K2 y+ E- d|        |        |  颜色表的表项总数,整型(低位-高位)                  
" ?+ ~4 E6 b9 x8 g- t; R5 L2 ]* ]|        |        |                                                            0 U% X9 E+ |* q; i; @: P/ q' {
|    7   |     1  |  颜色表表项的位(bit)数                                   + A' w9 ^2 n$ b9 [  |+ N6 t
|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA
+ j0 Y: W. O' K! h& w& H/ D! j|        |        |                                     5 y1 n* [) N- H5 N; D8 q
|        |        |                                                            
# X% r" M% a' _, J3 H% y|--------|--------|------------------------------------------------------------) O% E$ M: T% ]: ^" O, h3 G4 k
|    8   |    10  |  图像规格                                               
" i" O  E9 ~  e* f9 K# }|        |        |                                                            
: v. [8 |/ P( u  [- i, u|    8   |     2  |  图像 x 坐标起始位置                                       
. B0 k" A& N; y+ W) V* _. y|        |        |  图像左下角 x 坐标的整型(低位-高位)值               + e; g( v# V1 T# D, \8 u: k# k
|        |        |                                                         & \7 d7 A' q) B+ P' S
|        |        |                                                            
7 v7 x/ n1 L7 |. W1 a/ t|   10   |     2  |  图像 y 坐标起始位置                                       ) V/ Q9 L/ n1 o9 b% Z. w
|        |        |  图像左下角 y 坐标的整型(低位-高位)值               # W3 f; G& ~' x/ ^' _
|        |        |                                                         0 C# S! Q1 L+ M5 y  _. M
|        |        |                                                            
% c  Q5 k# t" ]  C! \4 Y1 [9 v1 r7 f|   12   |     2  |  图像宽度                                                   ; L& _- t8 U; h* `
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           
! E3 B- h. h" a|        |        |                                                            
# W2 T1 t! x4 p2 g7 v. j; L|   14   |     2  |  图像高度                                                   # G( N& m8 ~: d. m7 y6 V, m
|        |        |  以像素为单位,图像高度的整型(低位-高位)值               
8 U3 F. T; I8 m6 |$ R' q|        |        |                                                            
* A) R5 b0 |! a9 ~9 \|   16   |     1  |  图像每像素存储占用位(bit)数                             * j- Z! R' R/ X. E2 U! M0 P9 y5 \. }
|        |        |                                             # \" r5 D% n. ?' z3 N' {0 x) h
|        |        |                                                            
$ ~' N! A, w" g6 x8 `+ l7 I|   17   |     1  |  图像描述符字节                                           + h0 K/ U6 Y3 E& o# M
|        |        |  bits 3-0 - 每像素的属性位(bit)数                   . B+ p/ k  j$ ?6 `9 _
|        |        |                                                        & v+ s5 e, ]' e, `% o* v
|        |        |  bit 4    - 保留,必须为 0                               4 ]! l+ o9 |. j+ m
|        |        |  bit 5    - 屏幕起始位置标志                           
1 L' }: g; L; ?9 @|        |        |             0 = 原点在左下角                       
  n0 d* L! i& X5 O4 j# N. ]/ g|        |        |             1 = 原点在左上角                         4 d+ s7 ]0 T, y* j$ ~5 d
|        |        |             truevision 图像必须为 0                        
' O  Z* V1 ^/ t' w# x9 @7 a" {|        |        |  bits 7-6 - 交叉数据存储标志                       ' f5 O& o8 ]5 D7 O
|        |        |             00 = 无交叉                                   
4 r: D3 n% C# G2 U* \6 X|        |        |             01 = 两路奇/偶交叉                        
' g& z: U+ K  l( d7 L; G5 h% _|        |        |             10 = 四路交叉                              
1 p9 a/ n) }8 l' I2 N+ l- h0 W|        |        |             11 = 保留                                   
8 J% j+ }, i$ c1 I; ||        |        |  这一项应该设为 0,不要问我为什么                   ' M' t. ^& w5 O) [) p3 l
|        |        |                                                            2 N0 T: O) P: _
|--------|--------|------------------------------------------------------------
( ~9 R3 N+ ~( z|   18   |  可变  |  图像信息字段                                       " b, V# u7 E( k! t+ j
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   # c* H$ K$ B* ]8 ?, f2 C
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
% K5 P: D6 s2 T|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   - \1 g1 r' L3 n$ R+ G* [
|        |        |  之后                              
( M5 v/ B+ t3 W! |& ?* l- F|        |        |                                    2 H( y% p  N8 u4 i
|        |        |                                                            ) ^3 K2 {5 v1 m, J. b( s( C
|--------|--------|------------------------------------------------------------
: K4 Z% J4 d; ?' e. ^|  可变  |  可变  |  颜色表数据                                                * Z* U# p( F% Y- {: k
|        |        |                                                            
. h9 @% S8 \* q|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小      - G7 B; X8 U, y, ~4 }
|        |        |  和数据项数目决定(在前面相应的说明字段中给出)            
' y' j. q; S; J; u) E$ m% [& }/ v|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit) % r! X' T5 e* a+ ^
|        |        |  被认为是属性位。                           
9 X, J/ ~2 v4 I5 D: N# ?" @) U9 I|        |        |                                                            
$ g" \. B9 R% W  \|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,# _+ T! ?, ]% X" P
|        |        |              字节 3 表示 RED,字节 4 表示属性           
3 t- L: T8 Q( Q4 l9 X. I- Z7 _|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               1 K7 J' {* e& ]  s# ^$ C" y
|        |        |                                                            9 G6 V- ?# ^( [1 Q% L
|        |        |  2 字节表项中,两个字节分解成如下形式:               
9 L3 w5 x/ r' L2 J2 b3 q|        |        |  arrrrrgg gggbbbbb                           
6 Q' ]! Z: l/ Y! k  l5 |+ v# @|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  ' I8 M6 I' M; o- j, E, Z
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。  " F7 y# G& O! c, u+ J
|        |        |                                                            
0 v, I3 ]& P: U% G+ p; H|--------|--------|------------------------------------------------------------
3 f: ?+ Y# Q/ V& [|  可变  |  可变  |  图像数据字段                           
0 v3 f) c: M+ R/ D8 g, ^) d|        |        |                                                            ' N# a/ {1 A( r4 ?
|        |        |  该字段给出了 (高度)x(宽度)个颜色表项索引,每个索引    9 ]& E: H; d# R2 \5 a& ?( e6 }, ?
|        |        |  以整数个字节的形式存储(典型的例子如 1 或 2 个字节)      
# U9 n" `' Z" b" Y) W2 S|        |        |  所有的数据都没有符号,对于 2-字节表项而言,低位字节是     
, {: r8 L- X1 j$ K- O7 s3 F|        |        |  先存储的。                              
' O" B% w& i: w5 y  P* F5 n3 V|        |        |                                                            ) R2 }7 F/ w* m8 D& c9 t
-------------------------------------------------------------------------------
6 M3 d2 a4 ]! c. o2 R. B) e3 I  ]& t) C9 c* D

& H# }- F9 U! O. [4 c! E
; \7 H  B. z2 ]) \" B--------------------------------------------------------------------------------
7 O* W0 h- R0 A- s( Y|数据类型 2: 无颜色表 rgb 图像                                 
! M7 U* D4 l6 f; A% Z. \' B|--------|--------|------------------------------------------------------------
, c4 I) M7 K0 o8 f( q2 ]  P: L- A7 n|   偏移 |   长度 |                         描述                              
' w9 ~) R9 s! R0 P|--------|--------|----------------------------------------------------------  V3 N3 o( S3 r0 P% }+ o# \. x
|    0   |     1  |  图像信息字段( 见本子表的后面 )的字符数
. {, w& r3 _9 a. S& b% k, w|        |        |                                          
* r# @# O  r" P4 u|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度
1 A. E' L0 N+ k, ?* p) d|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的
4 ~7 A( @  q4 z  ^; y1 t! K|        |        |  信息字段。
/ B0 F6 c" ?8 w$ S& ], l) _|        |        |
' ^+ a! ?  j, e; f; t|--------|--------|------------------------------------------------------------
8 ^6 v( I: t7 t" o# \|    1   |     1  |  颜色表类型5 M5 M. V# W' ]5 n) T8 {
|        |        |                                                
% \0 c; g) N/ N6 ~# T3 ^) M; ?|        |        |  该字段的内容或者为 0 或者为 1;0 表示没有颜色表,1 表示
+ i8 A" w/ e- F" v|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。
  W7 T7 z( e5 G6 v  k, U|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射
8 T1 U$ g2 j$ ]/ R0 K+ z|        |        |        中的第一种颜色
  s- A# a/ A6 \/ h3 J|        |        | ( _1 U% W; F# {5 n
|--------|--------|------------------------------------------------------------
1 p% g% X* ~6 D! y. E6 U! @|    2   |     1  |  图像类型码
/ s1 y* y0 B% ~: E' s2 m7 q|        |        |                                                     7 X4 C$ R8 u, N" [
|        |        |  该字段总为 2 , 这也是此类型为格式 2 的原因   
6 q, a* a7 b6 R# R! G& J2 F|        |        |  
2 Z  R$ g( ~6 A& C( W3 K6 X|--------|--------|------------------------------------------------------------+ b" Z" N$ F% t$ M4 x/ i# T3 X- |0 x
|    3   |     5  |  颜色表规格9 t& w& J5 w6 u+ A: E! K; s" T$ k* s1 Y
|        |        |                                                         
# b0 P7 u# X1 D& n% B& q, s3 E|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下- B0 q/ z7 X' P. U) w
|        |        |  0 v7 J1 f6 z5 K! o
|    3   |     2  |  颜色表首址
- [6 |  g8 e, B0 i# a4 e|        |        |  颜色表首元入口的整型(低位-高位)索引
' G3 i9 ]$ {! u|        |        |                  
' L" ^- ?6 Q1 a6 U6 b- V* J# t|    5   |     2  |  颜色表的长度! v4 B; P2 [) }% C; |; w
|        |        |  颜色表的表项总数,整型(低位-高位)     7 O' ]$ ^) ^* m5 ]
|        |        |                                   
0 a" R: T5 I. ^* n; }) L+ U|    7   |     1  |  颜色表表项的位(bit)数
: |( T7 G2 A2 W; O8 D3 d  _9 L|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA; K- y8 m2 L' m/ _2 L  ^- v
|        |        |    T3 Z6 v2 l  l
|        |        |                                                           . p' C/ W0 a) q0 G
|--------|--------|------------------------------------------------------------
, V% v& ?4 v3 z5 D9 C( J; s|    8   |    10  |  图像规格
2 D8 e: z- t+ X1 F! I* A5 G|        |        |                             / Z! G" _7 n3 P: M. z
|    8   |     2  |  图像 x 坐标起始位置       0 ~+ {4 R! {- \1 F( f: {8 @6 h
|        |        |  图像左下角 x 坐标的整型(低位-高位)值
; M8 _7 ?' l3 B0 A* C* k7 A, g|        |        |  
/ x) z% }2 ~; [) v2 p$ o! N" ~|        |        |
& W4 K6 g2 I; R0 @|   10   |     2  |  图像 y 坐标起始位置+ F+ c* ~! x8 |, G
|        |        |  图像左下角 y 坐标的整型(低位-高位)值
& l" K1 `, [! m/ r|        |        |  
. k# @4 f; k* P+ s  s0 L) W2 l|        |        |
* G" B# g, Y9 Z$ u, T( c|   12   |     2  |  图像宽度
+ |5 c6 n3 ~2 q' \|        |        |  以像素为单位,图像宽度的整型(低位-高位)值7 B% B/ l2 d' B; S5 y
|        |        | ' E# P- H' \; [9 e( `2 i  j& T! K2 T
|   14   |     2  |  图像高度
, e3 V0 c: _$ n: U/ }9 @$ T1 ?|        |        |  以像素为单位,图像高度的整型(低位-高位)值% h5 k* q& W8 w( z8 S: r) T5 `
|        |        |
9 ]: g; P4 s3 X: O% h+ s7 J, f% N, F7 {|   16   |     1  |  图像每像素存储占用位(bit)数
. q* r& M2 {3 H- `$ H8 c|        |        |  它的值为16,24 或 32 等等决定了该图像是 TGA 16,TGA24: J* a- J( o: @! N. a5 o0 U
|        |        |  TGA 32 等等
( z  r8 e% ~; ]7 h4 @|        |        |
' h/ \( o: A" s/ u0 O& C. c- e+ [  ^' a|   17   |     1  |  图像描述符字节  J; j- N: s- [+ ?
|        |        |  bits 3-0 - 每像素对应的属性位的位数;对于     TGA 16,/ U: T/ {% v: _. k9 ~1 n; _
|        |        |             该值为 0 或 1,对于 TGA 24,该值为 0,( l. y* e7 R% l( H# C1 q2 d
|        |        |             对于 TGA 32,该值为 8
" \2 _/ |0 Y( ^|        |        |             3 G) [) e0 f% V. f* Z( |5 u; g6 i& D
|        |        |  bit 4    - 保留,必须为 04 M( i6 T1 ~9 V! B  C# j
|        |        |  bit 5    - 屏幕起始位置标志
6 @6 h# F6 `' W9 P* r( P|        |        |             0 = 原点在左下角
! D; d  v5 g# S# \7 Z: j|        |        |             1 = 原点在左上角
9 [$ y) Y% S* M, }# D$ z|        |        |             对于 truevision 图像必须为 0# w, ?1 L# t; w. O1 V5 `: C$ V
|        |        |  bits 7-6 - 交叉数据存储标志
6 c# T- B4 H3 }9 z2 @9 F/ K|        |        |             00 = 无交叉                                   
; y( T8 t( e! M|        |        |             01 = 两路奇/偶交叉                        , Y  }9 f# b1 S% q
|        |        |             10 = 四路交叉                               2 E3 Q5 }2 l' ~! m, w) V
|        |        |             11 = 保留
. I0 b8 v" g" \6 `  z- V|        |        |                                                            ; M$ a6 v* T: q# o& \3 ?
|--------|--------|------------------------------------------------------------
- Y. @4 @$ n1 i|   18   | 可变   |  图像信息字段                                       ( O& a( E, I" b6 F
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   0 F' K% F! d" {; k# t
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
; z3 E& I% p- w3 C6 a|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   
) L; T8 K" p2 |, J+ B3 {4 u|        |        |  之后                               4 s  B5 F3 y) V- Y/ {1 O) ?
|        |        |                                                            
" V' ?( V4 z* ~- x1 y' E' \|--------|--------|------------------------------------------------------------
2 ^7 h5 n0 Z8 g' Q# E% l|  可变  |  可变  |  颜色表数据                                                
( O+ |0 J) F  L& b|        |        |                                                
" j7 ~& i2 U) e|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取
; T& l( z! N/ e: ||        |        |  图像颜色表规格中描述了每项的字节数,为 2,3,4 之一# Q9 D; Q2 U+ z( q$ H0 l- O8 b6 \
|        |        |  
+ Y* U% z2 W) u% B|        |        |  & ~8 r4 F4 y& n& s! ^5 h! {! H: E% \
|        |        |  9 j, x3 x- R( j7 _' q
|        |        |  
) Q  w9 n$ p5 V! R& H' ?|--------|--------|------------------------------------------------------------& }0 o: g: i1 l0 R: w
|  可变  |  可变  |  图像数据域
" D# h" V* f( w! ~  @( a|        |        |                                                    ! t" `  C) `& [2 C2 r
|        |        |  这里存储了(宽度)x(高度)个像素,每个像素中的 rgb 色值* J4 D: L, r* I; I
|        |        |  该色值包含整数个字节* X. T: C  A1 t3 s  Y6 x- v
|        |        |  
9 ?% s  d! @' ^3 x5 _. Z|        |        |                                                           
" o' X( D+ R; p* T' o, d# H|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               
6 S6 m+ p+ L5 G& Z0 B: o* K|        |        |                                                            
6 N2 o6 K6 `' B/ g1 w|        |        |  2 字节表项中,两个字节分解成如下形式:                 ~' B& k6 q! J/ p2 M/ S
|        |        |  arrrrrgg gggbbbbb                           
: n6 n8 m; i9 V! s$ n/ |3 _2 [  y! a|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  ; N; o" X- Z7 @7 K0 ]9 k
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位
* r) w% y5 F( O7 U0 {+ r|        |        |                                                         
; K. B1 O5 [( V5 Y|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个6 D) M: h4 n: y. V) O
|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象
( U8 U+ ?# ?7 E+ h# j  f3 Y7 f; d|        |        |  TGA 32 类型的图像那样存储+ {4 A: F/ G& u: z( u2 k
|        |        |  $ l- o  D7 G) Q3 E" @
|        |        |                                                         " M; {  R) B& s5 Y+ H, W
--------------------------------------------------------------------------------
. o& ~* B* m6 i4 _( K. H+ y: p9 r9 p6 s2 ?

: G/ _9 d& H, U0 D$ k4 F: q6 _: m$ a: C6 u  S" K

4 D9 A+ m/ a; k% @% R--------------------------------------------------------------------------------
$ o3 D: R1 Z* @! O  \|数据类型 9:  runlength 编码,带颜色表的图像
# X5 s/ u, Z& }7 g' E1 n2 A% B|--------|--------|------------------------------------------------------------# z+ q8 r3 T0 P% R/ y" G* {+ L
|  偏移  |  长度  |                            描述
3 k8 q" A! V, m% E% C' ~|--------|--------|------------------------------------------------------------, s: Q, P* s% E' o
|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               6 @) l% y, j0 W1 d! e% H& N7 r
|        |        |                                                            
7 p4 c8 t3 `' ]" O0 F* F# I|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     
/ u/ X# i+ R; C! r, U: g|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     % S& b$ e  d% b* ?  w
|        |        |  信息字段。    4 u% |$ _' l3 g. I- [0 e
|        |        |                                                            ' |& f9 v! E) p; Y# x( f# W
|--------|--------|------------------------------------------------------------
. w) f% L, j( p' v4 F- @: U* t|    1   |     1  |  颜色表的类型                                           1 i- Q9 o. @5 Z/ v
|        |        |                                                            - E: `: H1 \8 w: W4 F
|        |        |  该字段为表示对应带颜色表的图像而总为 1 ' G. a# @0 `, _% c
|        |        |                                                            6 ~  K/ ~' M7 X' U
|--------|--------|------------------------------------------------------------
/ d3 p+ |6 N' [" d+ A* G|    2   |     1  |  图像类型码
; l( V6 ^( j- r. u|        |        |                                                            
) e- l" n$ }/ H8 d$ j$ O( x|        |        |  本类型该字段为二进制 9! [( K: U6 f9 k* [& v
|        |        |                                                            , ^7 V5 Y& {5 v4 i0 W$ S4 t
|--------|--------|------------------------------------------------------------
+ q3 e! K) P- T- _|    3   |     5  |  颜色表规格
) |* _) T6 w0 N  s# a8 e|        |        |                                                         + f) W  ?2 x/ j1 R8 e
|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下
+ W3 r' z( Z( Z8 e|        |        |  - J+ O1 ?7 I/ O& e6 w
|        |        |  
/ y0 o9 R% g- L4 k1 n7 b% Z|    3   |     2  |  颜色表首址& E' e+ P5 J4 l) y* ^% i  M
|        |        |  颜色表首元入口的整型(低位-高位)索引6 D: }$ Y6 \! t
|        |        |                  
+ p+ f9 e3 ]. Z" x* o; l|    5   |     2  |  颜色表的长度
. G' d: x8 S3 \|        |        |  颜色表的表项总数,整型(低位-高位)       L2 E$ F8 \& W) H
|        |        |                                   * f- ?% `! W, @  C" g
|    7   |     1  |  颜色表表项的位(bit)数
& J" d  U" {0 f0 G|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA
' _3 d1 u8 l+ H" P|        |        |                                                           
+ f& T, e7 d: Q1 Q1 s6 ?|--------|--------|------------------------------------------------------------
0 u) B& L, I1 q3 U|    8   |    10  |  图像规格                                               
3 r: i6 j+ O4 `" ||        |        |                                                            
; R# Z4 l6 d" f0 [* w2 T|    8   |     2  |  图像 x 坐标起始位置                                       
* C0 \7 u4 W- R! p" J|        |        |  图像左下角 x 坐标的整型(低位-高位)值               
2 J" L& Y) d- `$ q) T|        |        |                                                         * g( a& d2 p* d7 G' ~4 k+ R
|        |        |                                                            
" @( w. @  N8 P  {" S4 g+ l% L|   10   |     2  |  图像 y 坐标起始位置                                         W; |' f* A# y6 {
|        |        |  图像左下角 y 坐标的整型(低位-高位)值               
2 d& v3 N) K- D  L  R. A|        |        |                                                         / {& c0 S/ E- d1 x: ^8 E
|        |        |                                                            2 w" a  V6 P- B% D$ o; V  a' J
|   12   |     2  |  图像宽度                                                   
6 y5 e  x, a8 v|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           * `0 n* j9 F& `6 @
|        |        |                                                            
8 L3 E& H% S' J, I, Z9 h& C9 R+ q: v|   14   |     2  |  图像高度                                                   
/ H- b1 _3 m, y% ?" Z- |+ K* R0 M0 A|        |        |  以像素为单位,图像高度的整型(低位-高位)值               % W2 j% d- |: f3 G, q& S+ d  J
|        |        |                                                              Y- N! ]* Q- e6 U+ T5 `8 i2 i
|   16   |     1  |  图像每像素存储占用位(bit)数                             
# {" Q; E4 t) m5 \|        |        |                                             
* ~6 P4 g8 g& R: l( Z7 x( P|        |        |                                                            
, i% |+ _* G3 H6 F2 f|   17   |     1  |  图像描述符字节                                          
& \9 A" u, i4 E! m|        |        |  bits 3-0 - 每像素的属性位(bit)数                  
& _7 k" }* U9 o& f. p# ]' O|        |        |                                                        6 p1 R' V7 M4 _
|        |        |  bit 4    - 保留,必须为 0                               4 r4 h  O3 p. }( i
|        |        |  bit 5    - 屏幕起始位置标志                           1 b2 a3 c, o. M1 c( J
|        |        |             0 = 原点在左下角                       ' Y, n1 G5 e% C( |  C
|        |        |             1 = 原点在左上角                        
& O9 M" X6 J1 m: A( e( V- h|        |        |             truevision 图像必须为 0                         5 z7 C# G8 ^' N( F% }6 J
|        |        |  bits 7-6 - 交叉数据存储标志                       ) l. m* ~+ f2 n/ g: A
|        |        |             00 = 无交叉                                   & d" [+ P+ e; H. S  A8 Z7 }
|        |        |             01 = 两路奇/偶交叉                        
/ O% L& s. N+ Q+ t5 T|        |        |             10 = 四路交叉                                 o" d+ f2 C7 E# j2 K7 P
|        |        |             11 = 保留; V( m' U2 ]" e
|        |        |                                                            ) E( |4 I: u6 l* ~# c
|--------|--------|------------------------------------------------------------3 i; Z* \7 b7 o4 t
|   18   | 可变   |  图像信息字段                                       
2 ^% r; d( u9 t$ w" g# L9 o|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   ; I7 J4 K/ d& O' j2 c
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以    2 o, j7 U9 H! @9 S' U$ B" w
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   7 F) k- Q! X/ u" U3 ?9 ^8 r* {# ?' N
|        |        |  之后
. V/ ~5 m2 ]3 `* ]% G|        |        |                                                          4 y% J3 l& a  V0 M: a) y2 d
|--------|--------|------------------------------------------------------------% q% ~0 c0 s+ C% e. L
|  可变  |  可变  |  颜色表数据                                                
/ S, N3 h/ f% {' P|        |        |                                                              g0 _' l2 u$ H/ o# O' |/ X
|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小      
+ R% c2 q& ~4 l2 B|        |        |  和数据项数目决定(在前面相应的说明字段中给出)            
% T, P6 t& ~. G+ |( h|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit)
% p" {: r5 d7 T/ i|        |        |  被认为是属性位。                           . I& R) v7 U+ ]) P1 s
|        |        |                                                            
* X" b. W$ @; d) W3 V* z: {|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,9 X5 ^$ j# t- Q  G4 u8 I/ b
|        |        |              字节 3 表示 RED,字节 4 表示属性           4 N( I$ }# h5 y2 c1 y$ V
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               ! }; U8 {0 w7 R. l' z5 e
|        |        |                                                            ( Q- h& |/ n! X$ X
|        |        |  2 字节表项中,两个字节分解成如下形式:               - I& J6 J  G" m- l. W2 d
|        |        |  arrrrrgg gggbbbbb                           
/ r9 H% }7 K0 I; R. j; z$ e, A. a|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  9 A1 u% C" U" o& G- Z* r
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。
) d% M4 `5 j2 p5 \% h% c. Q; P|        |        |                                                            
" [7 d8 t+ A$ I$ u! [0 _# r0 k|--------|--------|------------------------------------------------------------
! Y5 g, Z# M3 _" T, S4 W| 可变   |  可变  |  图像数据域
$ g7 r  i& W: I2 X" s8 V/ B|        |        |                                                            ! o! ?% L* f1 D6 X; A  S3 X( {
|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放$ c0 |2 w; L9 j, S
|        |        |  在数据包中;有两中类型的数据包:run-length 数据包,
: a" s0 B5 @. F  X( l|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,: J& L+ G/ n0 l8 C+ j; ~
|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域$ ]% C* W# g+ b  i# b
|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当5 f5 F8 Q( z& \6 Z. g
|        |        |  它为 0 时,表示未加工的数据包
- x  q# w6 p" N/ _! Y6 Q8 L/ K|        |        |                                                            " z, J4 M2 b& P! r
|        |        |  对于 run-length 数据包,头信息含义如下
* P4 L. \9 `  [- Q! t7 d8 Z|        |        |      __________________________________________________    . g- h0 X2 ]1 h* |9 ]: D' [$ H
|        |        |      | 1 bit |   7 位的重复记数减一
% |8 b0 Y9 m1 C- c4 l$ G|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |" [3 u- P, e% D$ K, `3 H
|        |        |      |       |   的运行大小为 128,(译注:原文为     |
/ z5 Z8 y. C5 v1 r1 m; r( x|        |        |      |       |   the largest run size)          |  - E5 @/ r3 t4 q2 g+ Q4 I
|        |        |      |-------|----------------------------------------|
+ b: K9 d2 r6 c8 j1 j|        |        |      |   1   |  c     c     c     c     c     c    c  |
. ?4 {* b$ e3 [0 z/ u9 Z# }4 d, }|        |        |      --------------------------------------------------
% n( `, k) W; U8 A, G|        |        |                                                        3 i' v9 N# A  F( z* b) I5 g
|        |        |  对于未加工数据包,头信息的含义如下; p' q9 @9 ?, [0 s# m
|        |        |      __________________________________________________
& O/ f/ e9 B8 J6 G# a6 Y1 j+ m|        |        |      | 1 bit |   7 位的像素个数减一                   |) ^3 W/ k3 r$ I$ c0 k
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |" |+ B" y* U4 z
|        |        |      |       |   类型的一个数据包中像素个数不能大于   |1 ?8 p9 @; o+ h+ a1 {- d: @1 w, ]
|        |        |      |       |   128                                  |
% ^+ G2 ?9 d' t* I( }4 `|        |        |      |-------|----------------------------------------|
6 h1 p% v4 K- |( a- H' O% ?) C|        |        |      |   0   |  n     n     n     n     n     n    n  |1 K7 c9 w, @+ y. e3 C
|        |        |      --------------------------------------------------2 ?7 H0 A2 V3 Z7 @; H9 Z
|        |        |                                                        
% R% k2 ]1 N2 y5 Q: t/ z|        |        |  对于 run-length 数据包而言,头信息之后是一个简单的
) }5 ^, D% f7 x# t+ q9 U|        |        |  颜色索引,且假定该索引被重复头信息中低 7 位表示的次数
1 |5 z/ b  c1 w& u|        |        |  run-length 数据包也许会跨越扫描线
0 P; R& [7 P: E' I|        |        |  (扫描线起始于某行结束于下一行)! T4 i* R. _- \  h8 Q  j7 m& q
|        |        |                                                        
9 P  G) ]+ D, H|        |        |  对于未加工的数据包,头信息之后是颜色索引(数值由头信息! @$ t! R; f3 E9 D7 u9 b4 C% Y
|        |        |  给出)该类型的数据包也可能跨越扫描线
: {1 [" b. Z/ U: Y# o% X|        |        |                                                            - y' w. b5 i: X) s/ G7 P
--------------------------------------------------------------------------------! o+ R/ M- D% l! ~. d4 i
. T8 P8 ]) E  H8 j: H

6 p8 h, z. F$ I! b  S% C; w: M% r3 W$ D4 k7 `

5 v/ |# j% e6 M1 }/ k--------------------------------------------------------------------------------; M; d9 N1 ?3 x5 `
|数据类型 10:run length 编码,rgb 图像& u* i6 e* _; d6 {6 U
|--------|--------|------------------------------------------------------------7 c+ g' I0 }+ C
|   偏移 |   长度 |                         描述                              & ?% C1 j4 ?" e
|--------|--------|------------------------------------------------------------4 O& \; P6 c2 o2 _) D3 N- B
|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               $ R4 A( {. w" \9 l9 q  Y
|        |        |                                                            
" j  J/ H6 D) d|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     
# K( ]; u/ h8 x5 E( k) A: X% J: X|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     
! B; m; V' s7 T' {" X|        |        |  信息字段。    ; m% ~; b7 A8 S5 t
|        |        |                                                            ; y8 I/ ~- B  y6 A3 L6 v+ Q
|--------|--------|------------------------------------------------------------5 d+ S; q# [3 R" h0 ?) k7 Q9 G
|    1   |     1  |  该字段的内容或者为 0 或者为 1;0 表示没有颜色表,1 表示
2 a/ H2 R3 l* e! q|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。
3 \$ c) N* N# E' v# t" @|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射7 ]# [. C* |: k) S
|        |        |        中的第一种颜色
; b! s; U0 T5 I' P/ H|        |        |                                                            ; M0 |$ s$ ~8 s# O( U) ~4 E
|--------|--------|------------------------------------------------------------6 R0 R% p. V9 v) G- \) U
|    2   |     1  |  图像类型代码! o9 G, U! g+ g
|        |        |          ' U4 x. z2 ?0 t( s  o/ n
|        |        |  本类型该字段为二进制 10
& q2 N1 N8 [" o5 ^+ ^|        |        |                        
1 V- U2 L* }9 W8 q7 v" g/ Z|--------|--------|------------------------------------------------------------
8 u; x8 p# M' \; w3 n" k+ j' X5 J|    3   |     5  |  颜色表规格
: c$ z9 ?9 Q" R' e4 X|        |        |                                                         
% y! g. |4 F2 U; U|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下
6 l& ~# H9 s; a0 r& m' [( a- n|        |        |  
- i7 @& v- h+ f2 g1 O( R+ k|        |        |  
$ S, W) q5 j, B) G8 l  ]# l|    3   |     2  |  颜色表首址0 i2 |- y. _* [3 U3 W
|        |        |  颜色表首元入口的整型(低位-高位)索引6 X& Q. f* m3 y$ }; B
|        |        |                  
- ~$ v# p: b/ _- F# B|    5   |     2  |  颜色表的长度3 w6 `  E; R9 k2 Y
|        |        |  颜色表的表项总数,整型(低位-高位)     
3 F$ T5 A) D2 Q+ \|        |        |                                   
( P9 R  |4 S, e|    7   |     1  |  颜色表表项的位(bit)数
( }6 E) P9 Z7 n/ _; S3 D|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA
4 o' y/ E& I9 v1 F* M; t* O8 b|        |        |                                                            " y) |4 O) S1 t, U
|--------|--------|------------------------------------------------------------
! E. a  W4 ]/ K8 Q6 Q|    8   |    10  |  图像规格                                               ) _, \! x4 [2 c0 o
|        |        |                                                            0 `& R$ [* M  U5 P" Q& m" N
|    8   |     2  |  图像 x 坐标起始位置                                       
5 y+ |- O: |( h7 h( y7 f  T: Z$ E|        |        |  图像左下角 x 坐标的整型(低位-高位)值                 T, W, {* x# M. z* e0 O+ l
|        |        |                                                         . d, s" r, b- R0 G
|        |        |                                                            
0 g' z& |4 c+ j5 a9 L2 D& i|   10   |     2  |  图像 y 坐标起始位置                                       
$ \9 Y8 D: m( @* W|        |        |  图像左下角 y 坐标的整型(低位-高位)值               
1 n9 t; Z. Y# ^2 m" c|        |        |                                                         ' Y4 T: Z# P# i4 p
|        |        |                                                            # v3 q) h8 x1 Q) m- `7 ?
|   12   |     2  |  图像宽度                                                   2 D: V3 v- }+ w  N
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           # t- `2 ?) h$ A* G  Y
|        |        |                                                            - p6 z0 z8 @# o- i
|   14   |     2  |  图像高度                                                   : u4 |4 U1 E' \
|        |        |  以像素为单位,图像高度的整型(低位-高位)值               
: C6 s+ T# }8 \3 d|        |        |                                                            
8 u  ]/ U9 S9 N* ~: \" v|   16   |     1  |  图像每像素存储占用位(bit)数                             & y* e  M; L7 }: A
|        |        |                                             
+ l- A1 ^9 c: G* _% j( E& s2 ?|        |        |                                                            
: e- R- n1 w/ G5 D( V; x* a|   17   |     1  |  图像描述符字节                                          
' P  c5 o2 M" J' z6 J+ p|        |        |  bits 3-0 - 每像素的属性位(bit)数                     i# B# l; V% }2 \# [
|        |        |                                                        
3 [. |7 E: X1 o" ^0 x% k4 B|        |        |  bit 4    - 保留,必须为 0                               1 N* ~2 U9 x+ v$ }8 F8 A$ }: ^
|        |        |  bit 5    - 屏幕起始位置标志                           
6 v+ c8 i% G/ ^+ U! L|        |        |             0 = 原点在左下角                       1 Q5 p) e5 u; ^2 W! ]9 \
|        |        |             1 = 原点在左上角                        
& _0 U2 I* K1 `/ b|        |        |             truevision 图像必须为 0                        
9 L) ~# R- Q8 R+ Z4 q% G|        |        |  bits 7-6 - 交叉数据存储标志                       ; i8 u3 N/ V4 W; D, |  D; s( j: F
|        |        |             00 = 无交叉                                   0 V4 m9 j+ F) U5 [
|        |        |             01 = 两路奇/偶交叉                        ! B* F6 K% ^6 q
|        |        |             10 = 四路交叉                              
8 f/ f: G& a* B3 f, L( S|        |        |             11 = 保留                                   $ ]2 ~+ s" V3 V. |5 }% }* P& F" \* @
|        |        |                                                            
2 z9 ~. [1 h! x/ ~% @9 j3 S|--------|--------|------------------------------------------------------------: ~$ z( r" H: |1 U. y
|   18   | 可变   |  图像信息字段                                       ! e  Q. M9 a! _
|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   * n* ^5 d2 e  }4 L2 n
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
; f' s% Y" x! [) D/ Y|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   , N1 i6 v" y& `0 D( M( H
|        |        |  之后
( _* B3 k5 P8 p|        |        |                                                            7 @' [* d$ i, N6 m1 z  r! d
|--------|--------|------------------------------------------------------------
5 H6 o8 O% ~+ a# n|  可变  |  可变  |  颜色表数据                                                
* `8 \) c8 T! Z|        |        |                                                # s" Y  N2 b( R+ @
|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取# K. o+ x9 h0 K' ]4 n( w2 _1 ^
|        |        |  图像颜色表规格中描述了每项的字节数,为 2,3,4 之一
& k* q/ c/ {2 {" u|        |        |                                                            1 A; S3 z; K( `! y& W& n( `$ q
|--------|--------|------------------------------------------------------------* w5 _: Y" c! f& ^
| 可变   |  可变  |  图像数据域/ m. f6 H- p4 T, q4 B
|        |        |                                                            * I6 B# X/ b3 V& l  O( |1 c& T
|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放$ d* n5 Y; e6 X( o; q- C0 }0 a( `
|        |        |  在数据包中;有两中类型的数据包:run-length 数据包,
6 M; z. g( E4 [$ b; l2 B# t|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,) }5 m! F8 O; p/ X% e
|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域* X6 k4 t& f/ [7 a& B5 o+ e
|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当
# i/ W( F& k6 P; N$ x|        |        |  它为 0 时,表示未加工的数据包
0 a2 n1 T! @2 g/ B, E+ L: h|        |        |                                                           $ b6 j  Q& l$ S$ }. a/ l
|        |        |  对于 run-length 数据包,头信息含义如下1 g  ]8 _& B( M4 W) \) g
|        |        |      __________________________________________________   
: r1 i) J2 Q7 U% g|        |        |      | 1 bit |   7 位的重复记数减一" i6 N, X  v1 V, [% G# q# X( h
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |) D- G* x7 ~" K
|        |        |      |       |   的运行大小为 128,(译注:原文为     |
" P5 y2 s: S7 T' X6 J( G|        |        |      |       |   the largest run size)          |  
# N7 w; b9 k7 M$ X" a6 l/ r% L|        |        |      |-------|----------------------------------------|  s" K8 _+ Y: d7 ^# ^1 f/ x
|        |        |      |   1   |  c     c     c     c     c     c    c  |
+ C( R+ |2 ?/ V0 \+ b4 n& e|        |        |      --------------------------------------------------. [4 Q: |. ~* E3 ?3 D5 _% }2 |3 Y
|        |        |                                                        8 Z8 r' P  G- }7 d3 G+ U
|        |        |  对于未加工数据包,头信息的含义如下8 Y: U# c, B% Z' B
|        |        |      __________________________________________________
. Q, w; Y3 f0 j& @. J8 V; ^# p9 g|        |        |      | 1 bit |   7 位的像素个数减一                   |
) e9 ?4 w0 o8 A' I5 V8 Y|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |! J, b( ?+ ^- s  S
|        |        |      |       |   类型的一个数据包中像素个数不能大于   |
( A4 ]9 W) A6 Q  U* m% C" N|        |        |      |       |   128                                  |; \( I" l2 _5 h& O9 [. C! G* M: t0 `
|        |        |      |-------|----------------------------------------|8 v! e) |. Y. @4 b; ^' [7 t2 S" T3 X
|        |        |      |   0   |  n     n     n     n     n     n    n  |. {: K: Y6 B$ u. i5 w( K3 @9 r
|        |        |      --------------------------------------------------6 W' d. y0 j1 H
|        |        |                                                            
$ P+ m3 q9 w5 c& E7 q/ y|        |        |                                                            
5 M# v. }* h" ^$ s|        |        |  对于 run length 数据包,头信息之后是一个简单颜色值,
, h! s7 Z9 t  ^* [% v|        |        |  且假定该值重复的次数为头信息中记录的数, |7 @: W. \1 e
|        |        |  run-length 数据包也许会跨越扫描线' y/ Q/ }( F$ G) a: \
|        |        |  (扫描线起始于某行结束于下一行); h" i% b4 B) c
|        |        |                                                      
* c/ V4 z6 E: f( R! N' o|        |        |  对于未加工数据包,头信息之后是颜色值(数目由头信息指出)  ]0 l9 ~5 H9 h4 z: R
|        |        |  ! ]7 u! l7 Y. {  g8 D# S4 k' x" E! q
|        |        |                                                
4 b  z0 e/ W5 t+ W6 T0 Q+ o  L|        |        |  颜色表项自身有 2-字节,3-字节或 4-字节几种大小(分别
) g5 h1 z5 n9 V0 }4 m|        |        |  对应 TGA 16,TGA 24 和 TGA 32)形式如下:
! U  u  R% e9 O|        |        |  
/ S; Z/ D( N, e! }; B' W|        |        |            $ [' S5 m# I  f1 A2 N6 T. ^2 \
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               
2 n8 r5 h) T0 e|        |        |                                                            . c) [, W6 Q5 }1 ?/ i
|        |        |  2 字节表项中,两个字节分解成如下形式:               2 G5 a2 s5 n; l5 z/ y
|        |        |  arrrrrgg gggbbbbb                           
. k' g3 e" r  G, z4 k|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  " i. L( i" K- ]! o4 n
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位# H* i0 A5 p! }3 t
|        |        |                                                         
+ @( e/ ?3 L! w5 R# x|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个+ r! L" L2 w) n- t" r
|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象
# M+ T1 \& |  i' t# A|        |        |  TGA 32 类型的图像那样存储
  E1 @6 k. l0 s|        |        |                                                            7 P; a' v0 g' Q% V9 I
--------------------------------------------------------------------------------
8 h: S+ F' Q! y% R, x9 N
1 K* t$ C! \' 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日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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