更多课程 选择中心


Python培训

400-111-8989

python生成二维码的实例详解

  • 发布: 学习与分享
  • 来源:Python互动中心
  • 时间:2017-12-01 14:58

版本相关

操作系统:Mac OS X EI Caption

Python版本:2.7

IDE:Sublime Text 3

依赖库

安装命令:sudo pip install pillow、sudo pip install qrcode

验证是否安装成功,使用命令from PIL import Image,就可以验证PIL是否安装成功,qrcode则使用import qrcode,两条命令不报错,就说明依赖的环境已经完毕了。

使用qrcode

qrcode使用起来也很简单,代码如下:

import qrcode

qr = qrcode.QRCode(

version=7,

error_correction=qrcode.constants.ERROR_CORRECT_L,

box_size=10,

border=4

)

qr.add_data("Hello")

qr.make(fit=True)

img = qr.make_image()

img.save("test.png")

参数 version 表示生成二维码的尺寸大小,取值范围是 1 至 40,最小尺寸 1 会生成 21 * 21 的二维码,version 每增加 1,生成的二维码就会添加 4 尺寸,例如 version 是 2,则生成 25 * 25 的二维码。

参数 error_correction 指定二维码的容错系数,分别有以下4个系数:

1.ERROR_CORRECT_L: 7%的字码可被容错

2.ERROR_CORRECT_M: 15%的字码可被容错

3.ERROR_CORRECT_Q: 25%的字码可被容错

4.ERROR_CORRECT_H: 30%的字码可被容错

参数 box_size 表示二维码里每个格子的像素大小。

参数 border 表示边框的格子厚度是多少(默认是4)。

运行代码后,会在代码的当前目录下生成一个test.png的二维码,用手机扫一下就可以看到Hello了。

带有logo的二维码

生成这个二维码的原理就是利用PIL库操作icon,把icon放到二维码的正中间。PIL操作没有去了解,就直接使用脚本之家的代码来做事例。

import Image

import qrcode

qr = qrcode.QRCode(

version=2,

error_correction=qrcode.constants.ERROR_CORRECT_H,

box_size=10,

border=1

)

qr.add_data("#/")

qr.make(fit=True)

img = qr.make_image()

img = img.convert("RGBA")

icon = Image.open("favicon.png")

img_w, img_h = img.size

factor = 4

size_w = int(img_w / factor)

size_h = int(img_h / factor)

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)

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

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

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

img.save("dhqme_qrcode.png")

感谢阅读,希望能帮助到大家

本文内容转载自网络,本着分享与传播的原则,版权归原作者所有,如有侵权请联系我们进行删除!

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:Python--共享引用教程
下一篇:使用Python对HTTP摘要认证进行暴力测试

Python IDE推荐7个你可能会错过的Python IDE

Python面试题之Python中爬虫框架或模块的区别

2021年Python面试题及答案汇总详解

python数据分析,你需要这些工具

  • 扫码领取资料

    回复关键字:视频资料

    免费领取 达内课程视频学习资料

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省