盟军敢死队2及3 GRL文件格式表

盟军敢死队2及3 GRL文件格式表

地狱门神(F.R.C.)制作

数据区

数据块

数据

数据类型

长度

描述

样例数据

Header DA

Info DB

Identifier

String

4

标志符

4746524C(GFRL)

Version Sign

String

4

版本号

64000000(d)/65000000(e)

Image Count

Int32

4

图像数

08000000

Palette Count

Int32

4

调色板数

03000000

Image Info Length

Int32

4

单个图像信息头长度

40000000/4C000000

Palette Info Length

Int32

4

单个调色板信息头长度

2C000000

Image Info DB

Name

String

32

图像名称

 

Offset

Int32

4

图像数据开头相对于第一个图像数据开头的偏移量

00000000

Length

Int32

4

图像数据长度(注意:已发现长度为0的图像,估计是被删除的图像。)

F0060000

Palette Index

Int32

4

调色板索引

00000000

Compression

Int32

4

压缩方法,有三种,

(1) 2、4

(2) 0x142

(3) 0x102、0x302、0x802

02000000, 02010000

Width

Int32

4

图像宽度

38000000

Height

Int32

4

图像高度

2E000000

Center X

Int32

4

中心点横坐标

1C000000

Center Y

Int32

4

中心点纵坐标

17000000

Unknown1(Comm3)

Int32

4

未知数据

00000000

Unknown2(Comm3)

Int32

4

未知数据

00000000

Unknown3(Comm3)

Int32

4

未知数据

00000000

Palette Info DB

Name

String

32

调色板名称

 

Offset

Int32

4

调色板数据开头相对于第一个图像数据开头的偏移量

9E2A0000

Length

Int32

4

调色板数据长度

00030000

Count

Int32

4

调色板颜色数

00010000

Data DA

Image DB

Length

Int32

4

该图像的行数据总长度

09070000

Offset

Int32

4

位图每一行在数据中相对于第一行开头的偏移量

00000000

Offset数量为Height

Line Data

Byte

不定

每一行的RLE数据

 

Line Data数量为Height

Image DB数量为Image Count

Palette DB

Red

Byte

4

红色通道

00

Green

Byte

4

绿色通道

00

Blue

Byte

4

蓝色通道

00

三元组数量为Count

有很多个Data DB

 

注意:

1、所有的整数数据类型都是little-endian的。

 

2、盟军2的GRL文件的RLE算法继承自盟军1的RLE文件的压缩算法,但是有所改变。

解压方法(1):

定义一个数称之为已解压次数,该数每次读入数量并处理后递增1。

当已解压次数 Mod 4为0时,读入的数量为透明像素数(可为0),输出这么多个透明像素即可。

当已解压次数 Mod 4为2时,读入的数量为不透明像素数(可为0),输出紧接着的这么多个不透明像素的索引即可。

当已解压次数 Mod 4为1或3时,读入的数量为半透明像素数(可为0),输出紧接着的这么多个半透明像素的索引即可。(通常应作为不透明像素输出。)

[例1] 15 01 27 09 4A FF FF 04 36 04 D4 D4 D4 00 14 表示(用-1表示透明)

-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 27 4A FF FF 04 36 04 D4 D4 D4 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1

解压方法(2):

透明模式和非透明模式交替。初始是透明模式。

读入一个数量,如果是透明模式,则输出这样数量的透明像素。

如果是非透明模式,则输出后面的这样数量的非透明元素。

[例2] 15 01 1C 02 01 57 04 01 3B 0A 02 4A 2C 12 表示

21个-1  1C -1 -1 57 -1 -1 -1 -1 3B  10个-1  4A 2C  18个-1

解压方法(3):

透明模式和非透明模式交替。初始是透明模式。

读入一个数量,如果是透明模式,则输出这样数量的透明像素。

如果是非透明模式,则输出后面的这样数量的非透明元素,要输出一个跳过一个。

[例3] 95 02 E1 01 E0 01 03 01 DC 01 01 01 80 01 A3 表示

149个-1  E1 E0 -1 -1 -1 DC -1 80  163个-1

 

3、行的排列顺序与一般BMP不同,是从上到下的。

posted @ 2007-02-14 21:35  地狱门神  阅读(791)  评论(0编辑  收藏  举报