专栏首页python3python生成和解析二维码

python生成和解析二维码

python生成二维码,常用的模块有pyqrencode和qrcode。

一、用pyqrencode模块生成二维码

安装pyqrencode模块很复杂,依赖的东西也比较多,经过测试总结以下安装过程:

1、下载Cython:https://pypi.python.org/packages/source/C/Cython/Cython-0.19.1.tar.gz

安装:tar -zxf Cython-0.19.1.tar.gz && cd Cython-0.19.1 && python setup.py install

2、下载qrencode:http://fukuchi.org/works/qrencode/qrencode-3.4.2.tar.gz

安装前确认安装了yum install libpng-devel -y

安装:tar -zxf qrencode-3.4.2.tar.gz && cd qrencode-3.4.2 && ./configure && make && make install

3、下载Imaging:http://effbot.org/media/downloads/Imaging-1.1.7.tar.gz

安装:tar -zxf Imaging-1.1.7.tar.gz && cd Imaging-1.1.7 && python setup.py install

4、下载:https://codeload.github.com/bitly/pyqrencode/zip/master

安装:

unzip -q pyqrencode-master.zip

cd pyqrencode-master

easy_install cython

cython qrencode.pyx

python setup.py install

echo "/usr/local/lib">>/etc/ld.so.conf

ldconfig

5、用pyqrencode生成二维码

>>> from qrencode import Encoder

>>> encoder = Encoder()

>>> img = encoder.encode("hello python!", {'width':300})

>>> img.save("char.png")

char.png就是生成的二维码文件

二、用qrcode模块生成二维码

1、下载:https://pypi.python.org/packages/source/q/qrcode/qrcode-2.0.tar.gz

2、安装:tar -zxf qrcode-2.0.tar.gz && cd qrcode-2.0 && python setup.py install

3、用qrcode生成二维码

>>> import qrcode

>>> q=qrcode.main.QRCode()

>>> q.add_data("hello python!")

>>> q.make()

>>> m=q.make_image()

>>> m.save('char.png')

三、二维码的识别

解析二维码用到zbar模块,改模块在windowns下面是exe文件直接安装,比较简单,在linux下依赖的包比较多,安装过程就不在介绍,使用方法如下:

data就是二维的内容

def get_QR():
    scanner = zbar.ImageScanner()
    scanner.parse_config("enable")
    pil = Image.open("char.png").convert('L')
    width, height = pil.size
    raw = pil.tostring()
    image = zbar.Image(width, height, 'Y800', raw)
    scanner.scan(image)
    data = ''
    for symbol in image:
        data+=symbol.data
    del(image)
    return data

http://wangwei007.blog.51cto.com/68019/1249265

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 打破 iframe 安全限制的 3 种方案

    关注「前端向后」微信公众号,你将收获一系列「用心原创」的高质量技术文章,主题包括但不限于前端、Node.js以及服务端技术

    ayqy贾杰
  • Ubuntu上安装Python3.7

    在有些情况下,如安装某个比较Cool的工具的时候,需要用到Python3.6+。这时候,可以选择从Python官网下载源代码,然后编译。不过编译可能会因为各种各...

    王云峰
  • Ubuntu安装NeoVim:一种最简单的方法

    NeoVim是Vim的一个拓展版本,用起来比Vim爽一些。下面简要记录下在Ubuntu 16.04上安装NeoVim的过程,其实比较简单。

    王云峰
  • 你不应该知道的知识之如何安装老版本的Python

    由于某些奇怪的原因(如项目中要用某个用Python3.4编译的库),你可能需要安装官方停止支持的Python版本(如Python2.5, Python2.6, ...

    王云峰
  • 你不应该知道的知识之如何在Ubuntu 16.04上安装Pip2

    虽然2020年官方就不支持Python2系列了,不过有时你还是会用到Python2,这时候为了安装某个包(如numpy),你需要pip2。而pip2一般比较新的...

    王云峰
  • 以往的Python文章总结

    笔记;因为Python不像C语言那样的强结构语言,所以我学完C就开始学Python,脑袋嗡嗡的,不过还好,它的赋值很不一般,像C语言第一条应该是先申请一个变量然...

    天钧
  • 从源代码编译安装tmux

    为了使用新版tmux的特性,需要在Ubuntu 16.04上安装高版本的tmux,没有找到现成的ppa,因此搜到了一个从源代码安装的脚本,这里记录下来。

    王云峰

扫码关注云+社区

领取腾讯云代金券