Python struct解压缩,具有不规则的字段大小

时间:2017-11-09 04:28:40

标签: python image machine-learning struct python-imaging-library

我试图解压缩包含一些元数据和图像的结构。它是所有的比特,但内容的打包方式非常奇怪。它们不是在一个字节上对齐元素,而是每6位对齐一次。文件格式和内容如下图所示,也可以通过以下链接访问:http://etlcdb.db.aist.go.jp/etlcdb/etln/form_c.htm

我感兴趣的唯一字段是JIS代码和最后一个字段的16个灰度图像数据。此数据来自http://etlcdb.db.aist.go.jp/etlcdb/etln/etl4/etl4.htm

我面临的主要问题是这些字段是6位对齐的。我不知道如何正确解开结构。

另外,对于PIL,它还不清楚如何处理4位图像。模式1没有按预期正常工作..

file format

import struct
from PIL import Image, ImageFont, ImageDraw

filename = 'ETL4/ETL4C'
skip = 0
record_size = 2952
with open(filename, 'r') as f:
        f.seek(skip * record_size)
        s = f.read(record_size)
        r = struct.unpack('>9x1i203x2736s', s)
        print r[1]
        i1 = Image.frombytes('1', (72, 76), r[1], 'raw')
        # fn = 'ETL9B_{:d}_{:d}.png'.format((r[0]-1)%20+1, hex(r[1])[-4:])
        fn = 'name1.png'
        i1.save(fn, 'PNG')

0 个答案:

没有答案