转载的一个博主的关于gnt格式解码成png的

#!/usr/bin/python
 
import struct
import Image

在转为gnt的时候转成功了一部分但遇到了struct.error: unpack requires a buffer of 4 bytes问题,希望了解的人可以解答一下

import os
count = 0
path = 'C:/Users/Administrator/Desktop/HandWriting/test_data/'
 
 
for z in xrange(1241,1301):
    ff = './HWDB1.1_test/' + str(z) + '-c.gnt'
    f = open(ff,'rb')
    #ifend = f.read(1)
    while f.read(1) != "":
        f.seek(-1,1)
        global count
        count += 1
        length_bytes = struct.unpack('<I', f.read(4))[0]
        print length_bytes
        tag_code = f.read(2)
        print tag_code
        width = struct.unpack('<H', f.read(2))[0]
        print width
        height = struct.unpack('<H', f.read(2))[0]
        print height 
 
        im = Image.new('RGB',(width,height))
        img_array = im.load()
        #print img_array[0,7]
        for x in xrange(0,height):
            for y in xrange(0,width):
                pixel = struct.unpack('<B',f.read(1))[0]
                img_array[y,x]=(pixel,pixel,pixel)
        
        #print str(count)
        filename = str(count) + '.png'
        #filename = '/'+ tag_code + '/' +filename
        print filename
        if(os.path.exists(path + tag_code)):
            filename = path + tag_code + '/' + filename
            im.save(filename)
            #f.close()
        else:
            os.makedirs(path + tag_code)
            filename = path + tag_code + '/' + filename
            im.save(filename)
    f.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值