关于python识别二维码的问题

识别二维码需要用到zbar库,在win10上安装非官方的集成包没有问题,能import到zbar库

但是由于我们服务器是windows server 2003 64bit 那么问题就来了,环境、环境、头疼的环境,安装zbar python库的时候遇到各种坑,

后来采用了一种委婉的解决方式,就是安装zbar的windows程序,用调用exe的方式来识别验证码

    # 通过调用zbar的exe来识别二维码,前提是要先安装zbar的windows程序,找到安装目录下的zbarimg.exe
    def check_qr_code(self, img_path):
        try:
            process = subprocess.check_output(
                ["C:\\Program Files (x86)\\ZBar\\bin\\zbarimg", '-q', img_path], shell=True,
                stderr=subprocess.STDOUT)
            result = process.decode('gbk')
            print result
            if result.find("QR-Code:") >= 0:
                return True
        except subprocess.CalledProcessError as e:
            # raise RuntimeError(
            #     "command '{}' return with error (code {}): {}".format(e.cmd, e.returncode, e.output.decode('gbk')))
            return False

    # 通过调用zbar的python库来识别二维码,前提是要先安装zbar插件,windows环境安装可能会有很多地雷
    def get_qr_code(self, img_path):
        data = ''
        try :
            scanner = zbar.ImageScanner()
            scanner.parse_config("enable")
            pil = Image.open(img_path).convert('L')
            width, height = pil.size
            # raw = pil.tostring()
            raw = pil.tobytes()
            image = zbar.Image(width, height, 'Y800', raw)
            scanner.scan(image)
            for symbol in image:
                data += symbol.data
            del (image)
        except Exception, e:
            print "get_qr_code exception:" + e.__str__()
        finally:
            return data




  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值