• 八大国际娱乐平台\八大国际娱乐平台【授权官网】

  • 发布时间:2016-01-20 15:39 | 作者:yc | 来源:互联网 | 浏览:1200 次
  • 八大国际娱乐平台\八大国际娱乐平台【授权官网】

    简介

    python-qrcode是个用来天生二维码图像的第三方模块,寄托于 PIL 模块和 qrcode 库

    大略用法

    import qrcode

    img = qrcode.make('hello, qrcode')

    img.save('test.png')

    高级用法

    650) this.width=650;" src="/html/uploads/allimg/160120/1540255V0-0.gif" alt="仿制代码" style="border:none;" />

    import qrcode

    qr = qrcode.QRCode(

    version=1,

    error_correction=qrcode.constants.ERROR_CORRECT_L,

    box_size=10,

    border=4,

    )

    qr.add_data('hello, qrcode')

    qr.make(fit=True)

    img = qr.make_image()

    img.save('123.png')

    八大国际娱乐平台\八大国际娱乐平台【授权官网】650) this.width=650;" src="/html/uploads/allimg/160120/1540255V0-0.gif" alt="仿制代码" style="border:none;" />

    参数意义:

    version:值为1~40的整数,操控二维码的巨细(最小值是1,是个12×12的矩阵) 要是想让法度榜样主动断定,将值设置为 None 并运用 fit 参数即可

    error_correction:操控二维码的同伴矫正功能可取值下列4个常量

    ERROR_CORRECT_L:大年夜概7%或更少的同伴能被矫正

    ERROR_CORRECT_M(默许):大年夜概15%或更少的同伴能被矫正

    ROR_CORRECT_H:大年夜概30%或更少的同伴能被矫正

    box_size:操控二维码中每个小格子包括的像素数

    border:操控边框(二维码与图像鸿沟的距离)包括的格子数(默许为4,是有关规范规则的最小值)

    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 && www2222compython 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下寄托的包对照多,装配进程就不在先容,运用措施如下:

    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

    data等于二维的内容

    #coding:utf-8

    '''

    Python天生二维码 v1.0

    主要将文本天生二维码图像

    测验一:将文本天生白底黑字的二维码图像

    测验二:将文本天生带logo的二维码图像

    '''

    __author__ = 'Xue'

    import qrcode

    from PIL import Image

    import os

    #天生二维码图像

    def make_qr(str,save):

    qr=qrcode.QRCode(

    version=4,#天生二维码尺度的巨细 1-401:21*21(21+(n-1)*4)

    error_correction=qrcode.constants.ERROR_CORRECT_M, #L:7% M:15% Q:25% H:30%

    box_size=10, #每个格子的像素果4685com开奖结巨细

    border=2, #边框的格子宽度巨细

    )

    qr.add_data(str)

    qr.make(fit=True)

    img=qr.make_image()

    img.save(save)

    #天生带logo的二维码图像

    def make_logo_qr(str,logo,save):

    #参数设置设备摆设

    qr=qrcode.QRCode(

    version=4,

    error_correction=qrcode.constants.ERROR_CORRECT_Q,

    box_size=8,

    border=2

    )

    #增添变换内容

    qr.add_data(str)

    #

    qr.make(fit=True)

    #天生二维码

    img=qr.make_image()

    #

    img=img.convert("RGBA")

    #增添logo

    if logo and os.path.exists(logo):

    icon=Image.open(logo)

    #获取二维码图像的巨细

    img_w,img_h=img.size

    factor=4

    size_w=int(img_w/factor)

    size_h=int(img_h/factor)

    #logo图像的巨细不能跨越二维码图像的1/4

    icon_w,icon_h=icon.size

    if icon_w>size_w:

    icon_w=size_w

    if icon_h>size_h:

    icon_h=size_h

    icon=icon.resize((icon_w,icon_h),Image.ANTIALIAS)

    #详见:http://pillow.readthedocs.org/handbook/tutorial.html

    #核算logo在二维码图中的方位

    w=int((img_w-icon_w)/2)

    h=int((img_h-icon_h)/2)

    icon=icon.convert("RGBA")

    img.paste(icon,(w,h),icon)

    #详见:http://pillow.readthedocs.org/reference/Image.html#PIL.Image.Image.paste

    #保留处置惩罚后图像

    img.save(save)

    if __name__=='__main__':

    save_path='theqrcode.png' #天生后的保留文件

    logo='logo.jpg'#logo图像

    str=raw_input('请输入要天生二维码的文本内容:')

    #make_qr(str)

    make_logo_qr(str,logo,save_path)

  • 相关内容

友情链接: