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

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

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

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

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

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

原文
1 `9 k3 d9 e- M& N6 |& f. V' D+ Hhttp://dev.gameres.com/Program/Visual/Other/TGAFormat.htm
! q/ e  Z& }5 ^$ Q6 H  
+ D) A+ k' d+ A* P根据david mcduffe编写的TGA文件格式资料翻译而成
" C/ y& D* g* g: l. U: X% f4 n 
, j6 ]% O% C, D2 E4 v5 V/ h本文档是为满足许多对 TGA 图像格式的了解需要而创建的。本文摘录自truevision 技术指南的附录 C,如果1 n2 ]7 j! }$ W& P8 ]! [
需要更进一步的信息,请致信以下地址:* y& d+ F! R1 _3 u. c4 L
& V5 x; u0 i* F4 c
           at&t! R; L) T2 \- _; U5 ^- N
           electronic photography and imaging center& Z' r% L3 \2 c+ D7 X' |
           2002 wellesley ave., a' \+ V5 k, I* x* d( F
           indianapolis, in 42619: q. L: H- C5 ^" V5 s8 H$ G
本文档不求全面,但力求准确。如果你发现了任何拼写错误或内容错误,请告诉我,( david mcduffe,
3 P/ V- i8 x2 e* N* t( r0 J75530,2626 ),我将改正这些错误,谢谢。
9 d. z& m& k5 O7 g4 \8 K
: `6 K# c! N  Y3 `% a不全面的原因是 TGA 包含了超过六种图像文件格式,而其中的几种较为常用。 我选择了我现在使用的格式并; o9 y) s5 j% h
在本文中加以详解。 如果你需要本文中没有包含的格式说明,你可以与你的 truevision 代理商联系。2 t1 e. i7 M& [# \" g
对所有的 TGA 格式的文件而言,其第三字节(二进制整数)用来区别各种不同的 TGA 文件。下面列出了该字
# I9 ]5 [: u' [4 ^, X% F$ U节表明的对应文件类型:
+ T  u3 K. D2 S0 R4 Q( I) ?2 T    0  -  文件中没有图像数据
2 z$ O, V$ C8 f$ j    1  -  未压缩的,颜色表图像
+ B+ }& H) O. @* p- v' {; v- Z    2  -  未压缩的,rgb 图像
2 y$ g( `% o5 z4 E( O5 j    3  -  未压缩的,黑白图像
; n5 ~) r" X2 H9 I$ i% P    9  -  runlength 编码的颜色表图像
7 j: k) V+ }8 X+ R) d    10 -  runlength 编码的 rgb 图像
" B+ u- v1 v' Q% C( G' i    11 -  压缩的,黑白图像
+ s$ U! U1 O4 J    32 -  使用 huffman,delta 和 runlength 编码的颜色表图像# }4 z  O+ @$ t
    33 -  使用 huffman,delta 和 runlength 编码的颜色映射图像,4 趟四叉树类型处理。
* X# y( c3 a1 |' [- G    本文仅仅描述对应 1,2,9 和 10 的文件格式。$ y- j* g4 U8 v9 V- h

% ?5 S0 y7 j2 z$ U; m9 X--------------------------------------------------------------------------------) B! ~" L: _: ^7 B. L* ]' r% g% Q- b
|数据类型 1: 颜色表(color-mapped)图像
4 j9 j7 h. M! A+ N& W& j|--------|--------|------------------------------------------------------------
, O: r) e3 `% X. J- ^|  偏移  |  长度  |                            描述
2 n- }5 z: O# @|--------|--------|------------------------------------------------------------6 c; S6 ~/ s$ t( Z
|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               0 j. t2 x  B' L6 D/ Y
|        |        |                                                            3 }9 C2 k5 g0 g& y0 k
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     , {4 F6 R5 X  V: W$ @" W
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     
/ O5 e4 R% r" n+ w+ K|        |        |  信息字段。                                   
. o. c: j: N! e( `, W+ d|        |        |                                         
; R) w5 P* ?1 ?% s1 Z, A|        |        |                                                            
4 I, E* R1 m4 e4 t! h: z% N|--------|--------|------------------------------------------------------------
6 D, ~' n, T+ M8 y! c/ ]9 f|    1   |     1  |  颜色表的类型                                           ( W1 i+ n- I" ?  I
|        |        |                                                            - I. j" O8 A+ V- N
|        |        |  该字段为表示对应格式 1 的图像而包含一个二进制 1           
/ }7 f  p, x/ |: J: G|        |        |                                                              u2 X- q% G& _) P5 ^
|--------|--------|------------------------------------------------------------+ v* p2 f; E$ B% \) z  B
|    2   |     1  |  图像类型码                                            / Q. I1 \9 F" x
|        |        |                                                            
* s' v- ^  Z  X& m( J- z: h# [9 g|        |        |  该字段总为 1 , 这也是此类型为格式 1 的原因               
  w: F7 C& V  ]5 S|        |        |                                                            . C% Y; X1 S+ v6 A# k5 c
|--------|--------|------------------------------------------------------------$ u9 [2 T, ^: M  u
|    3   |     5  |  颜色表规格                                       
2 E% R0 d. G% T9 w' f/ f! J|        |        |                                            
) N3 ^: ?* h$ `, }- x|    3   |     2  |  颜色表首址                                                
5 o, A3 m/ P7 Q; L7 S" K8 @2 i! o" d|        |        |  颜色表首元表项的整型(低位-高位)索引                " d2 z7 V1 j4 \$ x; i, }+ X
|        |        |                                                            
5 O. L5 a# H( z8 B# x|    5   |     2  |  颜色表的长度                                          0 z, s2 o4 W, R* w; Z4 D
|        |        |  颜色表的表项总数,整型(低位-高位)                  
1 D. @4 `7 v; ]|        |        |                                                            / x' Z: X+ q5 \; Q; `# M
|    7   |     1  |  颜色表表项的位(bit)数                                   
$ E2 r  v9 K# e% U& V: k% g& T|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA
" b* h8 g8 n: M) N|        |        |                                    
# {, C& p% n; J|        |        |                                                            " R6 R' W9 X3 V3 \3 ]
|--------|--------|------------------------------------------------------------: S( {9 T! i8 S( m- K* N$ c
|    8   |    10  |  图像规格                                               
2 a7 R, [) a" K* B' _' m|        |        |                                                            
5 W& L2 i! _' R- R|    8   |     2  |  图像 x 坐标起始位置                                       1 W7 p. L& `+ ~* B  D+ V" o
|        |        |  图像左下角 x 坐标的整型(低位-高位)值               0 G8 T: h  I. i$ u$ Z
|        |        |                                                           A/ Y- b& ^9 i! d
|        |        |                                                            4 L' h) X6 B, z8 x
|   10   |     2  |  图像 y 坐标起始位置                                       
6 q  M% D) w* n- ~! S! X|        |        |  图像左下角 y 坐标的整型(低位-高位)值               7 x! ~. O: [: j3 }2 C  v
|        |        |                                                         5 m! T6 p3 C9 F+ K
|        |        |                                                            
2 a6 _0 d/ R5 x+ V" {% _|   12   |     2  |  图像宽度                                                   . j( a) G8 U1 r; a+ p
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值             X6 q, k5 \+ f/ t0 \
|        |        |                                                            5 R! [4 T) X# c. n) p% \# A
|   14   |     2  |  图像高度                                                   
% r* @/ M! z8 [! C|        |        |  以像素为单位,图像高度的整型(低位-高位)值               
0 M% Q- b) W6 ~* A|        |        |                                                            ' P9 [' T0 u* Y3 t. O* k1 B' g
|   16   |     1  |  图像每像素存储占用位(bit)数                             
! {& n7 Z& s) I" z$ ]|        |        |                                             
9 f8 M* g# w, ~8 n0 C4 k5 k+ u0 m|        |        |                                                            
2 w; g' m9 q2 k+ ~|   17   |     1  |  图像描述符字节                                           # D8 W4 c! U6 o9 m$ @/ ~
|        |        |  bits 3-0 - 每像素的属性位(bit)数                   3 y% G; P& j. `
|        |        |                                                        7 a3 x, p6 E# t- B) E6 f
|        |        |  bit 4    - 保留,必须为 0                              
0 ]* m1 p  W( c9 [|        |        |  bit 5    - 屏幕起始位置标志                           5 Y, I3 O# h+ e+ |6 |7 h& X0 L
|        |        |             0 = 原点在左下角                       
$ E4 N* D' y- K* m7 S3 m7 f8 U|        |        |             1 = 原点在左上角                         " j5 a6 k+ v; `; |& ^2 D4 c. m
|        |        |             truevision 图像必须为 0                        
9 o& R* A* F. e- ]( j|        |        |  bits 7-6 - 交叉数据存储标志                       
" V; ?1 w! Y' A( b2 y2 \/ L|        |        |             00 = 无交叉                                   
1 P: v+ x$ I% s+ z|        |        |             01 = 两路奇/偶交叉                        
5 u. d6 {1 c( o  H' d8 u|        |        |             10 = 四路交叉                              
2 @5 Y7 P5 ~1 ^  B/ e|        |        |             11 = 保留                                   
: e, w7 e2 a9 k|        |        |  这一项应该设为 0,不要问我为什么                  
4 \9 J$ ~2 S4 }/ E! B4 Z|        |        |                                                            6 G+ g6 _# ]! e; Y% u. m5 W
|--------|--------|------------------------------------------------------------- I7 |7 }5 O8 |; c
|   18   |  可变  |  图像信息字段                                       
' ^8 I# O7 r6 G7 `|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   
0 j% d& q! s9 w' Q, ~. G|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
. B% ~  J! H7 `6 X  f9 }|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   ! ~; Z0 U; I4 y8 x
|        |        |  之后                               * K( K9 a* ~6 z. D2 X2 ~
|        |        |                                    
" H1 s3 V& I- ~( ^9 W|        |        |                                                            ) c' D" b0 H! W: @9 u0 ~6 `
|--------|--------|------------------------------------------------------------- G' n/ [" y. q
|  可变  |  可变  |  颜色表数据                                                
8 @! R7 Q" W% g' x& o: o3 k|        |        |                                                            
; N3 v: @; t% H! Y7 w|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小      ) ]! i/ Y7 [# D7 O; S
|        |        |  和数据项数目决定(在前面相应的说明字段中给出)            & Z8 T6 X0 ]/ ?9 Y* L3 j
|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit) , t7 X6 G' }" p; U# o
|        |        |  被认为是属性位。                           4 ~$ A1 R1 C5 ]4 l
|        |        |                                                            
, v7 X* X' u) c8 H* m; Z+ ]: t0 s% [+ U+ D|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,
& y% M  r' I7 p: u7 p# Y. e|        |        |              字节 3 表示 RED,字节 4 表示属性           / V9 M$ l8 @' ]
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               - p3 N- s( b6 w+ w) L, |
|        |        |                                                            / @: J8 B# P3 N" M0 n: i
|        |        |  2 字节表项中,两个字节分解成如下形式:               
* X. a$ t6 m/ m( V|        |        |  arrrrrgg gggbbbbb                           
1 l# v+ w! v# {4 u' k|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  2 B" u. W6 }$ k0 w5 _/ v' y
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。  
! l# q1 W& g& \; A' g) v|        |        |                                                            
# k& v' x. W: L. W* Y9 J3 k|--------|--------|------------------------------------------------------------1 g9 x2 i: e  z: w% e" ?
|  可变  |  可变  |  图像数据字段                           : @# a( T& `8 v) Z% ?3 Y
|        |        |                                                            
7 s* o# K3 L9 [: t4 v|        |        |  该字段给出了 (高度)x(宽度)个颜色表项索引,每个索引   
) Q- B$ p% u/ W7 N|        |        |  以整数个字节的形式存储(典型的例子如 1 或 2 个字节)      ! x7 j5 i# `+ q8 \9 M3 L; Z
|        |        |  所有的数据都没有符号,对于 2-字节表项而言,低位字节是     ; Y$ \! U/ z" Z
|        |        |  先存储的。                               " f" n' E/ `. d( G+ O; s1 W. f
|        |        |                                                            
7 Z) C3 `1 R) P7 F) m-------------------------------------------------------------------------------0 E/ n* E) P$ T+ ]
# n4 b! B+ q" b5 J& D. L, \

1 W" f" f6 F- F/ d0 x
' |" c/ ]) V4 @$ }7 \( d--------------------------------------------------------------------------------9 ]  a/ }2 m! D0 a( Y+ _* \
|数据类型 2: 无颜色表 rgb 图像                                 
5 c1 m4 _7 L3 e- L4 X# Z3 r|--------|--------|------------------------------------------------------------' `2 x- t  r3 P* I& G( s- x
|   偏移 |   长度 |                         描述                              
9 ~8 ^8 S8 Y0 h  w, D7 A2 A. u" y|--------|--------|----------------------------------------------------------
- c/ r+ M$ B. v& [|    0   |     1  |  图像信息字段( 见本子表的后面 )的字符数% G9 {3 j6 k. S
|        |        |                                          
+ o$ R1 K/ i2 p|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度) l! {% }( S$ _) s
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的
* o- b3 W- u, B% j7 `|        |        |  信息字段。
4 i# A- q9 D# u; U! l: @5 v|        |        |
) ^1 N9 |9 q! I5 F|--------|--------|------------------------------------------------------------
; |. H7 J: r1 p, H|    1   |     1  |  颜色表类型
( z  h/ i/ g/ B5 S5 I* u5 S& n5 N6 _|        |        |                                                 # o" T, _/ `6 g7 B4 _
|        |        |  该字段的内容或者为 0 或者为 1;0 表示没有颜色表,1 表示
7 b: P, N. J0 m% N/ M/ V# J- B|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。' R# Q2 W7 ~" m
|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射
! D$ `$ w' s7 v1 ~5 ~$ t/ o|        |        |        中的第一种颜色& k" C1 h8 w; A; @9 z5 H
|        |        | / {* G: v% @/ ?! @. F5 ?0 t0 A( a/ U3 Q
|--------|--------|------------------------------------------------------------
+ F7 I$ `/ A& K+ Z: V|    2   |     1  |  图像类型码- D6 T% o+ U0 m6 ^8 Z8 v& h
|        |        |                                                     : B4 n% S, h) S. @! V
|        |        |  该字段总为 2 , 这也是此类型为格式 2 的原因   
7 h! A# c# L9 o  F& T|        |        |  5 X6 ]! }- j4 Z' }6 u0 t7 ^3 r
|--------|--------|------------------------------------------------------------
) ]: N. f( s8 N' ]7 @+ B|    3   |     5  |  颜色表规格, ^7 `' H$ d6 Q' x0 S5 E
|        |        |                                                         
2 P( s9 T* a% l|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下
- f% [2 B; p" J- m. Z" Y3 v|        |        |  
+ A' S$ X6 H1 X- ]$ Z9 i5 K' j$ G' `|    3   |     2  |  颜色表首址
3 u# g5 l7 R9 B9 G|        |        |  颜色表首元入口的整型(低位-高位)索引4 W. k( K* ^1 d6 q$ o
|        |        |                  
6 \/ D  p3 E: S& U3 Z|    5   |     2  |  颜色表的长度$ V9 P3 B4 \/ z, e
|        |        |  颜色表的表项总数,整型(低位-高位)     4 O# A% o* t$ _- D7 R
|        |        |                                   
5 B" v; I7 h3 J% ?|    7   |     1  |  颜色表表项的位(bit)数
4 W$ n2 i) [1 e3 ~- a6 X. z- o|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA9 {( Z7 C4 i  m9 ]- e/ _  g
|        |        |  
& p6 V. E  L' e|        |        |                                                           : Y# x  H8 S# @3 t1 U$ q
|--------|--------|------------------------------------------------------------: e* J" R+ ?2 z$ S
|    8   |    10  |  图像规格
+ G. z) I5 G! m- }% c|        |        |                             
' U' j# _$ j% R. h|    8   |     2  |  图像 x 坐标起始位置       ) A  A/ Y6 @& L8 o
|        |        |  图像左下角 x 坐标的整型(低位-高位)值, g9 f2 ~. ]# A  R) O5 {- g) D8 L
|        |        |  ' `5 T" b& I/ ]' U. L
|        |        |7 H5 C* D/ {9 N/ H3 @) s: p
|   10   |     2  |  图像 y 坐标起始位置
4 ?5 p1 _+ g- p! ~6 L|        |        |  图像左下角 y 坐标的整型(低位-高位)值
- J. B% t  A7 S" {, z|        |        |    n  b$ X1 f  v* V  L: G: l/ s% x
|        |        |. @/ H& b  G4 T% n! Y: j; b# R! ?+ G
|   12   |     2  |  图像宽度 6 J& d/ s9 d6 h
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值* j; }' W: k: d' y
|        |        |
9 {0 L( m  u- x4 \|   14   |     2  |  图像高度( ~& @, F5 m% J3 ]
|        |        |  以像素为单位,图像高度的整型(低位-高位)值9 H, {2 a+ M$ Z
|        |        |; f1 D* e# C* a) ~) O: f
|   16   |     1  |  图像每像素存储占用位(bit)数4 g4 I# K, r/ m1 p- v7 M
|        |        |  它的值为16,24 或 32 等等决定了该图像是 TGA 16,TGA24( f$ B8 z# P; E$ a7 X6 s) Z
|        |        |  TGA 32 等等
3 N# ^" j4 W7 f|        |        |, H# ~' \( U$ l- K- u6 e8 G
|   17   |     1  |  图像描述符字节
! r2 B# T  e7 ~; o; i( y/ K: \|        |        |  bits 3-0 - 每像素对应的属性位的位数;对于     TGA 16,
8 y$ f0 a5 i/ E. `8 l|        |        |             该值为 0 或 1,对于 TGA 24,该值为 0," t3 I/ k! ~2 r) _# g
|        |        |             对于 TGA 32,该值为 87 {) _+ ]0 V5 Z8 T3 ?
|        |        |             / t. d/ F* u# w* I+ f
|        |        |  bit 4    - 保留,必须为 0  a' t; V' O. N6 e
|        |        |  bit 5    - 屏幕起始位置标志
8 ^! }/ ~( U& z. i" H; e" A9 X|        |        |             0 = 原点在左下角* P, }% {, u$ m  ~! M4 ~
|        |        |             1 = 原点在左上角! Q% ?1 T# @9 S3 V3 w; O& o
|        |        |             对于 truevision 图像必须为 0
. J) H' f- r$ L- V$ e/ @|        |        |  bits 7-6 - 交叉数据存储标志
# `, d9 {  l* _0 N|        |        |             00 = 无交叉                                   
, |5 e- M7 B( U5 u8 n|        |        |             01 = 两路奇/偶交叉                        ( Z) N6 ?6 f; v
|        |        |             10 = 四路交叉                               0 N$ ~$ A. a% ]7 B' e, K8 O! \
|        |        |             11 = 保留
  L6 Q* V. ?' l7 i|        |        |                                                            " `' x* i7 \+ H
|--------|--------|------------------------------------------------------------
9 U  I/ Z0 _1 b, B' Y- C& G|   18   | 可变   |  图像信息字段                                       
8 E5 d0 v# Z0 ]: Q* b7 F2 Y) v  P6 o* _|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   9 w; J% x6 M1 S
|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以    " K) L7 p/ S2 R! a/ \7 h* Y4 e
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   $ y9 i1 w& H2 E
|        |        |  之后                              
0 r7 U6 |, t) S( f) j; V|        |        |                                                            
+ D$ T0 G' r- z- P" c* P) O|--------|--------|------------------------------------------------------------* J- m, D2 i7 Q7 t/ f
|  可变  |  可变  |  颜色表数据                                                
! z4 f* q2 O# l: o|        |        |                                                5 t2 d4 B, [2 H& Y+ ]
|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取
7 x# I3 S; ]# M" [|        |        |  图像颜色表规格中描述了每项的字节数,为 2,3,4 之一
5 S- O" s! W1 A" \|        |        |  
$ r6 Q, M* U0 g9 K) y$ L1 I|        |        |  6 L0 w" f; w/ |# P" [
|        |        |  
: w$ R- u+ B' H6 I' V- c|        |        |  ! m) a; e" @9 }! V! `9 F" q& Y
|--------|--------|------------------------------------------------------------8 r$ E/ H( |, ~! I- e" s- p
|  可变  |  可变  |  图像数据域
: q& J6 L# y4 n: j. _|        |        |                                                   
- }3 {9 s' K- }$ X) t& J5 l& T& l" [2 Z|        |        |  这里存储了(宽度)x(高度)个像素,每个像素中的 rgb 色值" w" s' c* X$ h) k+ I. |! a& R! ]
|        |        |  该色值包含整数个字节0 D  c. E! F. U/ }
|        |        |  ( U! y4 a; J" v! S1 ^% I* b3 T
|        |        |                                                           9 v2 B% z2 O- `( l2 z; K
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               
5 L8 r' p" J# Q" P|        |        |                                                            $ s0 @  h3 N( r, g
|        |        |  2 字节表项中,两个字节分解成如下形式:               / k. w% R" U9 L$ q
|        |        |  arrrrrgg gggbbbbb                           $ f8 y0 }& Y& w+ p" q7 A, b9 t
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  , C( \. x, ]1 q" C* i5 A. Y
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位
% Z" {; a: H3 |) h$ X! y1 F|        |        |                                                          : Y/ g( F7 r4 `
|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个
9 A: h0 [# z7 t7 D1 M4 }|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象2 R2 Z: R) W7 Z. _' u( w, O
|        |        |  TGA 32 类型的图像那样存储
. u% t6 \/ O. L. h# P$ `|        |        |  
. h- \7 a, B2 R1 A2 i|        |        |                                                         
6 p' X6 u+ h# ]+ b+ j--------------------------------------------------------------------------------. I2 d5 X0 p& B& `5 ]

# c5 O9 w) q1 `, R$ `$ \5 Y# F" ]2 j; ~5 M! e% ]/ O4 }* S' s

! m( ]% w. L7 A% r
3 N( @. S0 C& p* C5 I$ u5 t* l8 l- f--------------------------------------------------------------------------------
& L+ s0 s' i. k% o|数据类型 9:  runlength 编码,带颜色表的图像3 D) o4 e' M' P0 g( b% L+ a* R
|--------|--------|------------------------------------------------------------# |4 p2 Q) ]. t; r
|  偏移  |  长度  |                            描述& \/ u' F% ^4 a. i
|--------|--------|------------------------------------------------------------
1 z- e1 a& d/ n* N& K! \2 F- W8 j. v( ?|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               
# R5 Z, s6 M4 h5 y|        |        |                                                            * C3 W6 m  I" N3 |" S
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     " j, f2 d1 O, v) L
|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     
3 O6 G0 }3 ~" h2 N0 k|        |        |  信息字段。    $ y( P" W( _% `6 N/ I4 _  x
|        |        |                                                            
0 f8 k' R) e' g4 ]|--------|--------|------------------------------------------------------------
* D: ^* x) n+ U' w( U# ]& `|    1   |     1  |  颜色表的类型                                           % b) j9 F1 x, l
|        |        |                                                            
+ e# n" U0 k+ H% k$ U|        |        |  该字段为表示对应带颜色表的图像而总为 1
* E, x- m& y2 i+ _|        |        |                                                            ; b& f6 q7 ?  |0 Q( G1 t; [4 |6 n: M1 H
|--------|--------|------------------------------------------------------------7 V  C) d1 U1 F2 O& g4 u
|    2   |     1  |  图像类型码% N4 A& l  d& q( f* Y! F
|        |        |                                                            
/ I( t# C8 I0 N# G, j: \|        |        |  本类型该字段为二进制 9) s  W; J- y  T$ j! ^
|        |        |                                                            ) q$ h; Y% y# D7 J! }7 O
|--------|--------|------------------------------------------------------------# s9 c% [) I& z! w8 t
|    3   |     5  |  颜色表规格
4 |# q. C/ |1 s2 t0 L) A+ O|        |        |                                                         6 ?% P9 |+ m# D5 C
|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下
( x- [! D' o4 h6 J|        |        |  7 J( N8 Z$ x# l- p. n: s9 r' h
|        |        |  
9 Y0 @$ \/ u$ W0 w. ?. [2 B|    3   |     2  |  颜色表首址
; Y1 r& }* @. y|        |        |  颜色表首元入口的整型(低位-高位)索引
/ G# v+ o0 C$ ]; k; n7 p: d|        |        |                  
$ g+ S' s% [. E) A7 b|    5   |     2  |  颜色表的长度" H; _7 e' M& h. v+ ?) V  D
|        |        |  颜色表的表项总数,整型(低位-高位)     " I1 G: g  x7 s
|        |        |                                   ! g' j( Y7 y" h, M7 l8 v0 o
|    7   |     1  |  颜色表表项的位(bit)数
' l5 t, ]" S0 e9 m' ]4 t0 d4 s|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA6 x/ ^9 d/ K1 ?( ~) e
|        |        |                                                           
. Q2 ~. O: n: T. [$ F# W|--------|--------|------------------------------------------------------------0 c3 y" p- T9 g- X
|    8   |    10  |  图像规格                                               
8 M. w, ?. ]" F6 ?' C/ N5 N|        |        |                                                            7 F% ~. M. m5 p% y
|    8   |     2  |  图像 x 坐标起始位置                                       
6 ^) J: I) f& T  c|        |        |  图像左下角 x 坐标的整型(低位-高位)值               7 L1 ~8 L$ b% S. g7 K* B" U* I
|        |        |                                                         . t7 l: i) l' i& O) i! x+ ]
|        |        |                                                            
  O7 |! f1 T4 }  Y$ A, W9 i/ \|   10   |     2  |  图像 y 坐标起始位置                                       3 u( Q) x1 f$ Q+ }0 {9 P4 ]
|        |        |  图像左下角 y 坐标的整型(低位-高位)值               . @1 |; Y  M7 z1 \
|        |        |                                                         
! `* C/ d1 R$ i0 W|        |        |                                                            
4 Q' Y+ m, s0 h8 _6 x|   12   |     2  |  图像宽度                                                   3 o; x0 T' y, j7 M8 ?( b
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           - y9 `2 V' n. G6 S& Q
|        |        |                                                            
' D8 F! l' }" U5 t|   14   |     2  |  图像高度                                                   
$ \" R7 ]5 A; }4 W|        |        |  以像素为单位,图像高度的整型(低位-高位)值               
! v$ }# b: q1 p4 X" U" W" D! l|        |        |                                                            
. v* w! D- I2 R|   16   |     1  |  图像每像素存储占用位(bit)数                             % x9 T1 d+ A4 `6 M
|        |        |                                             
, J7 g# O: W1 @' K4 i  s|        |        |                                                            
8 f6 V% W. |2 e) i7 K1 J( G  J5 l|   17   |     1  |  图像描述符字节                                           * Z- y) z/ L" S3 z( e
|        |        |  bits 3-0 - 每像素的属性位(bit)数                  
, s: L5 E0 e! r/ I* D( U# V|        |        |                                                        
6 e2 z9 ], B0 O" L& e|        |        |  bit 4    - 保留,必须为 0                              
7 U$ B* k# j* T|        |        |  bit 5    - 屏幕起始位置标志                           
8 _  d7 o1 [4 H# o5 {|        |        |             0 = 原点在左下角                       4 q8 U" O* T: Q. d' Y
|        |        |             1 = 原点在左上角                        
7 F6 Y6 d) ~: a" C. C|        |        |             truevision 图像必须为 0                        
: y1 |* H9 @0 M$ u|        |        |  bits 7-6 - 交叉数据存储标志                       
* f, D. F* s% s) N7 |# r|        |        |             00 = 无交叉                                   , M3 j; u  n# x- v( l+ e/ c
|        |        |             01 = 两路奇/偶交叉                        
$ R& n  L+ L6 |: ^|        |        |             10 = 四路交叉                              
3 i8 \' J# n: v. K% e; U+ X|        |        |             11 = 保留
  H$ Y% \& }+ j1 U5 l! U. p/ G6 z, z|        |        |                                                            * J- s% h: r; P& [: W
|--------|--------|------------------------------------------------------------& r0 ]3 S. Z4 x6 m! P
|   18   | 可变   |  图像信息字段                                       
* n1 W/ H3 K: D+ C|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   
$ W1 v& _/ ^7 f|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以    * M/ {7 Y4 i# a* k1 \
|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   5 O' u: k6 a. @7 g- W: r; P( w4 y
|        |        |  之后4 v9 G- H! s$ n' B
|        |        |                                                         
: u- {7 ?. N% W0 C. M|--------|--------|------------------------------------------------------------
' ^4 l( |3 z) i; q8 [5 K# ^& o|  可变  |  可变  |  颜色表数据                                                
9 T9 V, W# _4 ~3 V, H0 q. Z- L|        |        |                                                            
; ?% t2 V3 u& R) W- }; g|        |        |  起始位置由前一个字段的大小决定;其长度由单项数据大小      
  C8 I; X  z  R1 z. D8 @|        |        |  和数据项数目决定(在前面相应的说明字段中给出)            3 v5 {) W7 H- j* T3 ~
|        |        |  每项是 2 字节,3 字节或 4 字节,字节中没有使用的位(bit) 3 w7 O# t  p/ B
|        |        |  被认为是属性位。                           
1 v6 l* l  x. z$ }4 @1 K|        |        |                                                            
1 X6 y+ L& a; r# L4 E% Q+ \|        |        |  4 字节表项中,字节 1 表示 BLUE,字节 2 表示 GREEN,/ n* \5 W, ?* f4 V4 W! K2 l
|        |        |              字节 3 表示 RED,字节 4 表示属性           
3 b2 f9 u  d( Q|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               & l) I* V' y+ i# g5 V: u: K! P
|        |        |                                                            6 u" o3 C" O1 f, q: T
|        |        |  2 字节表项中,两个字节分解成如下形式:                 R( R1 C+ A9 [* a0 Y
|        |        |  arrrrrgg gggbbbbb                           ' p' q% P; @* {6 ~
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  
$ N1 h+ ^) c/ n2 G5 }* P: z|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位。
' N, }3 z; s; H& V# [  a. M2 g|        |        |                                                            " e, R0 }) I+ F( [$ p, W
|--------|--------|------------------------------------------------------------! u: v2 d. W# }9 ~- P5 \4 a, V
| 可变   |  可变  |  图像数据域
5 o9 V5 x: _- X* _; W9 J' f7 ~/ N9 h: t|        |        |                                                            
2 k$ w/ W$ p  C1 }|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放% l- n- Z$ l& J7 A
|        |        |  在数据包中;有两中类型的数据包:run-length 数据包,( X' C7 Q8 h' M: C1 U5 `
|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,
2 i) G7 {& V4 a2 g; G, d: b|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域
- _- y( |+ E6 u- O. n|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当
$ K# b+ m! M0 R7 N+ g|        |        |  它为 0 时,表示未加工的数据包
' X5 |" |& @+ s9 A5 s|        |        |                                                            
/ z& v; \; m  J/ ~' X4 T( L|        |        |  对于 run-length 数据包,头信息含义如下! a/ Z, R$ }. g- V: K4 j
|        |        |      __________________________________________________    : c! Y5 N1 @" Z  Z+ ~# L7 _; s! E% s
|        |        |      | 1 bit |   7 位的重复记数减一
1 y) ?4 E/ p3 C/ o* Q* q( B1 R& K9 b|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |3 ~$ f; p( F3 J" z9 G! j
|        |        |      |       |   的运行大小为 128,(译注:原文为     |
) k$ Y' w4 s* o& S. y|        |        |      |       |   the largest run size)          |  / [. a8 B# a  f2 z! \- z! V- `
|        |        |      |-------|----------------------------------------|
) L9 K  B6 \7 K3 ~8 K/ y( N7 K, b|        |        |      |   1   |  c     c     c     c     c     c    c  |
7 }* \5 g0 {( `, y. m/ G|        |        |      --------------------------------------------------& T1 ]1 ?' S7 [  D+ m+ S! B
|        |        |                                                        
% M( X+ g6 W1 M) v6 Z5 Y# t9 J+ t' c|        |        |  对于未加工数据包,头信息的含义如下' X. c1 M5 v+ t6 f2 ~
|        |        |      __________________________________________________
. O: }+ m6 O' q, v+ U. ~. N. A|        |        |      | 1 bit |   7 位的像素个数减一                   |
0 u5 O4 \+ K3 G|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |
1 _2 u% m" H$ N% i+ x|        |        |      |       |   类型的一个数据包中像素个数不能大于   |
5 _' d0 X# _2 O2 J+ E( c* }|        |        |      |       |   128                                  |1 k+ R- a- `7 @
|        |        |      |-------|----------------------------------------|
) I( ~; D2 O- e) \' |; h|        |        |      |   0   |  n     n     n     n     n     n    n  |
( N7 \, q0 P$ R  i: o' n5 B: f9 E  o|        |        |      --------------------------------------------------0 ]* F8 x" |1 K0 R2 d
|        |        |                                                        2 M& ~0 H4 Q' U1 K, O
|        |        |  对于 run-length 数据包而言,头信息之后是一个简单的$ o* `5 s1 I3 i' a" m$ T
|        |        |  颜色索引,且假定该索引被重复头信息中低 7 位表示的次数
( h  K* e& ]2 v7 E|        |        |  run-length 数据包也许会跨越扫描线) N# K" q( [' o. J$ [
|        |        |  (扫描线起始于某行结束于下一行)
4 S- ~* S# k8 \$ \|        |        |                                                        
2 ^3 o" n# T* ?- R% }, n|        |        |  对于未加工的数据包,头信息之后是颜色索引(数值由头信息6 T+ \  G6 s3 w" m
|        |        |  给出)该类型的数据包也可能跨越扫描线
8 s" O6 j1 r0 K4 D- m2 A|        |        |                                                            / n; j& U% [4 x, y. a' D
--------------------------------------------------------------------------------
, G/ B  L1 D/ p4 r, Y4 _% u$ }: n& G
. y& |! B# \  U& V3 w' i0 b0 w* I1 S+ B6 n; I3 ]

3 r2 [1 `$ |& v  A. j8 Q. ]# z! R# R% t9 K. Q1 T8 ^+ u
--------------------------------------------------------------------------------: Y: y7 I+ q$ {/ z
|数据类型 10:run length 编码,rgb 图像
$ @% P7 j/ s7 T|--------|--------|------------------------------------------------------------
: H# u0 Q, s% G, k* t! [* c. L|   偏移 |   长度 |                         描述                              ; Q" a) P9 B5 G' ~' d
|--------|--------|------------------------------------------------------------
& e9 \- Z% G4 o, I8 M& K3 f|    0   |     1  |  图像信息字段(见本子表的后面)的字符数               ' |+ w4 r0 Q$ T7 U  S# \( D
|        |        |                                                            0 o) w& e1 [6 I# m. [! V7 N
|        |        |  本字段是 1 字节无符号整型,指出了图像格式区别字段长度     
! f6 {  C( J$ E! u: a" o0 t2 w0 Z|        |        |  其取值范围是 0 到 255 ,当它为 0 时表示没有图像的     
8 v& \2 q% C2 ]( W9 d' C|        |        |  信息字段。   
; d4 Z1 Q9 O% P* X3 m7 C# f|        |        |                                                            
' I& p$ p0 a. J/ j) n7 G+ d|--------|--------|------------------------------------------------------------
" e' d8 \) T3 N4 q8 W; i|    1   |     1  |  该字段的内容或者为 0 或者为 1;0 表示没有颜色表,1 表示
) R2 `/ E% L( f1 W/ D# O/ v6 i, \0 p|        |        |  颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略。- {; E/ p9 U# \8 u9 D
|        |        |  提示:如果置为 1(targa 绘画程序)将把边框颜色设置为映射/ ?! Q4 t$ H$ Q: @, M
|        |        |        中的第一种颜色
* K% D3 g8 ]  B. @% ?4 z|        |        |                                                            
& a4 h9 }5 y5 N" o0 @|--------|--------|------------------------------------------------------------
/ r; ?" C- p& A, ?. H# ?3 x|    2   |     1  |  图像类型代码/ Q+ U. @2 I0 z* V3 `* _- N
|        |        |         
* b7 }( ~9 Q: n|        |        |  本类型该字段为二进制 10
9 g  x: T! |" ~1 o/ \; X. ^|        |        |                        
$ B. A8 q( c' x|--------|--------|------------------------------------------------------------
0 h4 B5 g/ w; F5 N4 R" K|    3   |     5  |  颜色表规格
2 q% b) X  R3 L( G5 r7 I|        |        |                                                         - l# C4 N! @" E' e
|        |        |  如果颜色表类型字段为 0 则被忽略;否则描述如下6 f5 U  `0 w! X: T; Z/ W0 F. r
|        |        |  
: |% }+ `, ^3 y2 L0 V7 @|        |        |  8 E& M- r- C& M7 d3 m5 L
|    3   |     2  |  颜色表首址# b( J: R; _6 M. }# H& `% q2 w' U
|        |        |  颜色表首元入口的整型(低位-高位)索引  A$ I& D5 G5 L2 z& G+ l9 n# M
|        |        |                  1 c! H( f0 z7 e5 ?8 e7 d
|    5   |     2  |  颜色表的长度
5 Y; J$ P$ }" c1 _|        |        |  颜色表的表项总数,整型(低位-高位)     
1 ~& s8 c4 _7 ~5 ~|        |        |                                   # e! i& K" l7 P$ @* w
|    7   |     1  |  颜色表表项的位(bit)数
2 a. q7 D0 V4 `3 Q% @& ]7 b|        |        |  16 代表 16 位 TGA ,24 代表 24 位 TGA ,32 代表 32 位 TGA
' u) V$ U6 i2 \+ ~( I, H|        |        |                                                              Y( {, z; e- j5 X
|--------|--------|------------------------------------------------------------/ }2 e6 k) a8 C7 c6 K
|    8   |    10  |  图像规格                                               ! @0 g' M$ W- I# d* t, Q
|        |        |                                                            
- i2 X' c( d1 E& R3 u6 q; _8 M9 k7 [|    8   |     2  |  图像 x 坐标起始位置                                       ! A# A. }0 r+ l; r$ n; j  G% h. {
|        |        |  图像左下角 x 坐标的整型(低位-高位)值               
! U& U; a. n( I  l! l% o|        |        |                                                         ! `: I$ m+ t/ c1 l2 Q6 b6 [
|        |        |                                                            4 q7 F% l( m9 g' N+ R2 A( J
|   10   |     2  |  图像 y 坐标起始位置                                       5 ?; C( e7 b  z; |  ?3 W- e
|        |        |  图像左下角 y 坐标的整型(低位-高位)值               
; Y% p6 [4 i' ?& b3 m- T|        |        |                                                         
" F/ A' ^; ^5 {1 [+ f|        |        |                                                            ' l$ E3 o, ^, c5 b- c3 ]
|   12   |     2  |  图像宽度                                                   & E4 U7 {5 C" R
|        |        |  以像素为单位,图像宽度的整型(低位-高位)值           
7 [. w% f% s  k  m|        |        |                                                            
) |5 p6 N- a4 m; E  A|   14   |     2  |  图像高度                                                   
7 Z5 b7 A% C) z7 ^0 f: \% E|        |        |  以像素为单位,图像高度的整型(低位-高位)值               ( V5 ~; g2 H; K/ O  K
|        |        |                                                            5 J4 Z! N4 {0 g$ @* y4 w8 R' m8 s
|   16   |     1  |  图像每像素存储占用位(bit)数                             
) }/ Y8 ?5 r7 i|        |        |                                             7 H& x" J$ D/ `& p6 Q0 q5 m- h- Y
|        |        |                                                            ( ]. X: t: ^7 p
|   17   |     1  |  图像描述符字节                                           / T$ }! k4 S' V7 U! d
|        |        |  bits 3-0 - 每像素的属性位(bit)数                   ! o# P: O: w0 U7 W! s
|        |        |                                                        * O. h) `# a, |/ n$ P7 u/ [+ j/ X
|        |        |  bit 4    - 保留,必须为 0                              
# T% a* `4 z2 b5 U|        |        |  bit 5    - 屏幕起始位置标志                           
8 V/ b' i  Y) ]* a|        |        |             0 = 原点在左下角                       
" K, ]: ?; }( X3 M( b# o|        |        |             1 = 原点在左上角                        
; ^; ^/ c6 L* W) H4 e) i" e|        |        |             truevision 图像必须为 0                         2 N9 [) f# s1 t" }
|        |        |  bits 7-6 - 交叉数据存储标志                       $ t3 k# ]  ~( [
|        |        |             00 = 无交叉                                   8 W  J- ]5 {# _2 _. C
|        |        |             01 = 两路奇/偶交叉                        & u  D8 @: U) r4 o* Y" M
|        |        |             10 = 四路交叉                              
% C) ^- V3 W, y5 N|        |        |             11 = 保留                                   # ~8 h! F  N) Q, X
|        |        |                                                            - J4 ]. h% u( v! e
|--------|--------|------------------------------------------------------------9 L* \; k/ S# U9 l) a3 X7 w
|   18   | 可变   |  图像信息字段                                       
4 f/ w( x) M7 T; b$ Z|        |        |  包含一个自由格式的,长度是图像记录块偏移 0 处的字节中的   
, c9 Z2 `) Q  @3 n% a8 n|        |        |  值。它常常被忽略(即偏移 0 处值为 0 ),注意其最大可以   
; s* }  J  j/ V" n  N* S  F|        |        |  含有 255 个字符。如果需要存储更多信息,可以放在图像数据   ) w: q. d' P  {; v3 O* R! a" Y8 C& E
|        |        |  之后  ?6 q. h3 w; L
|        |        |                                                            
( I3 T: b+ K' q( Y5 g|--------|--------|------------------------------------------------------------2 A3 D" b, O* m/ S! ?( a1 ^- J' L  j
|  可变  |  可变  |  颜色表数据                                                
8 A/ d- o. ^2 X$ w, N- U0 f! _|        |        |                                                3 o; [4 o7 q. H. z3 E8 c) _
|        |        |  如果颜色表类型为 0,则该域不存在,否则越过该域直接读取
: i  Y- I4 v8 ?. y" R. G|        |        |  图像颜色表规格中描述了每项的字节数,为 2,3,4 之一* }0 u6 K4 n- \: D; n
|        |        |                                                            
( T1 u/ \- J, Y$ l. N  J|--------|--------|------------------------------------------------------------
& `7 u/ N5 n0 u0 S( T; v; S| 可变   |  可变  |  图像数据域
; `5 a3 D2 w' C! D! I0 z, G+ J|        |        |                                                            ( ]6 I' `, j4 B5 L: d  z- K
|        |        |  本区域给出了(宽度)x(高度)个颜色表索引这些索引存放7 ?( p2 ~- p- L* g/ s( {
|        |        |  在数据包中;有两中类型的数据包:run-length 数据包,4 P( o, F3 M6 S+ |
|        |        |  以及未加工的数据包,每种类型的数据包含有 1-字节的头信息,: k7 [* ~3 {9 Z& \! k
|        |        |  (其中指出了数据包类型和数目),其后是可变长度的数据域$ U  }2 ?# {0 H( D5 K9 F) N
|        |        |  头信息中最高位为 1 表示 run-length 类型的数据包,当
; e  T- s( }0 k+ q' ?0 g( h) a' N|        |        |  它为 0 时,表示未加工的数据包
' d" i; [! I! o|        |        |                                                           
* p% I5 [* r! K/ e* {1 O" G. `|        |        |  对于 run-length 数据包,头信息含义如下
* A. G! f8 l5 c. T|        |        |      __________________________________________________   
0 E  p$ e+ |8 [2 x|        |        |      | 1 bit |   7 位的重复记数减一
1 [- ?- T' t( Z, H! q5 b|        |        |      |   id  |   由于 7 位表示的最大值为 127,故最大  |
5 w+ f( }" B0 i, K|        |        |      |       |   的运行大小为 128,(译注:原文为     |
' @7 q: Y; V& Q+ R( l|        |        |      |       |   the largest run size)          |  
7 U, Q# v2 J! }1 v|        |        |      |-------|----------------------------------------|
# s; Q/ H) n4 Z( Z|        |        |      |   1   |  c     c     c     c     c     c    c  |
9 n- _0 H) C% P/ w|        |        |      --------------------------------------------------
% E/ _; l) d! c3 e" {( {|        |        |                                                        
$ n) c3 f7 g. d) y% F! ]|        |        |  对于未加工数据包,头信息的含义如下% y- A/ O, y% m9 c- \, N  e9 S
|        |        |      __________________________________________________- q+ N: C0 ]$ c5 B* C/ H
|        |        |      | 1 bit |   7 位的像素个数减一                   |2 f+ F9 ?& W. C5 g' q3 w
|        |        |      |   id  |   由于 7 位表示的最大值为 127,故该    |
: b- q- a1 b9 B4 Y. k|        |        |      |       |   类型的一个数据包中像素个数不能大于   |8 A4 e8 _" x+ J) R! _
|        |        |      |       |   128                                  |/ ^& Z* W$ B* U$ l4 E7 k
|        |        |      |-------|----------------------------------------|
6 h4 L) o/ S9 ^/ A7 N4 P|        |        |      |   0   |  n     n     n     n     n     n    n  |
$ z6 m: k+ q/ Y1 E/ E1 R; E|        |        |      --------------------------------------------------8 G: X& i7 f7 N2 a& J
|        |        |                                                            
# d. w/ u- y* `6 J* {|        |        |                                                            
( P% j! W! S2 o1 f|        |        |  对于 run length 数据包,头信息之后是一个简单颜色值,8 c, c+ C* N" n7 a
|        |        |  且假定该值重复的次数为头信息中记录的数% r4 i9 J' U. v6 K  H5 C: ]4 w3 p
|        |        |  run-length 数据包也许会跨越扫描线
: E. |& I" s1 v3 y. O|        |        |  (扫描线起始于某行结束于下一行)# [+ s! P0 G" j: l5 z" v5 A" \  O
|        |        |                                                      % j/ \4 Z7 T" o
|        |        |  对于未加工数据包,头信息之后是颜色值(数目由头信息指出)( y7 q& f+ @- H- D. x0 ]
|        |        |  ! W+ _6 M, P* Y& A2 j( O0 i. o+ s" M7 j
|        |        |                                                + h+ s3 O+ U7 r
|        |        |  颜色表项自身有 2-字节,3-字节或 4-字节几种大小(分别
: J6 ?4 ]  T0 {8 l& I, x: g1 J|        |        |  对应 TGA 16,TGA 24 和 TGA 32)形式如下:
8 o( C3 ~+ G- x|        |        |  8 R' T- H1 W, ~9 Y' L0 t1 x  S
|        |        |            4 V. W3 p& W! v$ p/ X3 X) F. k
|        |        |  3 字节表项中各字节依次对应 BLUE,GREEN,RED               0 q% t0 ]' e) r( ^8 \/ c/ t
|        |        |                                                            
# x1 `; C% m4 n2 ^$ i# a|        |        |  2 字节表项中,两个字节分解成如下形式:               
. [$ m# F$ o' Y$ B. ^|        |        |  arrrrrgg gggbbbbb                           8 ^, M0 I: O' x9 E! |1 v
|        |        |  但是,由于低位在前,高位在后的存储顺序,从文件中读出表项  ) C0 \# Y' ^) P4 D; b& T5 S2 G
|        |        |  时,将先读入 gggbbbbb 而后读入 arrrrrgg ;a 表示属性位3 k' K- _3 H+ C0 i
|        |        |                                                          7 o7 F/ _, c2 T% c' F' w
|        |        |  4 字节表项包含了分别代表 blue,green,red 及属性的四个$ A$ |# s9 \% J, S' T
|        |        |  字节;(由于硬件上的原因)有的时候 TGA 24 类型的图像也象& r; d; S1 a& B, |! {. U
|        |        |  TGA 32 类型的图像那样存储4 [4 Q6 {8 I5 x0 g  r+ z" v  ?
|        |        |                                                            
& {* l$ J: Z' f# m--------------------------------------------------------------------------------
8 u) {9 |, ~) O8 l; F# L0 s* A- U" i. p0 E! @
<完>
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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