首先我们要了解,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] #