我试图解压包含一些元数据和图像的结构。都是零碎的,但是里面的东西包装的方式很奇怪。元素不是在字节上对齐,而是每隔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工作不正常,如预期。。在
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')
目前没有回答
相关问题 更多 >
编程相关推荐