[Python]:热血传奇-Wzl,Wzx的解析

         首先我们要了解,wzl与wzx的对应关系,wzx里面存的是每张二进制图片数据在wzl中的偏移量,所以取到wzx中的偏移数据就可以取到wzl每张图片数据,其实就这么简单。

1[取wzx中偏移量数据]:以素材[hum.wzx]为例进行解析

-读取前44字节为wzx头文件,对解析无作用不做处理

-读取44至48字节代表为,[wzx中偏移值总数量] [int类型] [4字节]

-读取48字节以后,每4个字节[int类型]为一个图片的偏移量

    with open('hum.wzx', 'rb') as wzx_file:
        wzx_file.seek(44)  # 指针指向44字节位置
        wzx_data = wzx_file.read(4)  # 读取4字节数据
        image_number = struct.unpack('I', wzx_data)[0]  # 解析出图片的总数量数量
        image_data = []  # 定义空数组准备接收for循环里面获取到的偏移值
        for i in range(image_number):  # 根据总数量来决定取要在wzx中获取多少条数据
                wzx_file.seek(48 + (i * 4))  # 从48字节开始 每次指针偏移4字节
                wzx_data = wzx_file.read(4)  # 每次读取4字节
                num = struct.unpack('I', wzx_data)[0]  #

你可能感兴趣的:(开发语言,python,数据结构)