python生成二维码的实例详解


Posted in Python onOctober 29, 2017

python生成二维码的实例详解

版本相关

操作系统:Mac OS X EI Caption

Python版本:2.7

IDE:Sublime Text 3

依赖库

Python生成二维码需要的依赖库为PIL和QRcode。

坑爹的是,百度了好久都没有找到PIL,不知道是什么时候改名了,还是其他原因,pillow就是传说中的PIL。

安装命令: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("http://3water.com/")
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中的MySQLdb模块添加超时功能的教程
May 05 Python
Python算法之图的遍历
Nov 16 Python
python GUI实例学习
Nov 21 Python
Django项目中model的数据处理以及页面交互方法
May 30 Python
django rest framework 数据的查找、过滤、排序的示例
Jun 25 Python
python用requests实现http请求代码实例
Oct 31 Python
利用Python计算KS的实例详解
Mar 03 Python
python3中TQDM库安装及使用详解
Nov 18 Python
python实现MySQL指定表增量同步数据到clickhouse的脚本
Feb 26 Python
python 如何读、写、解析CSV文件
Mar 03 Python
Python获取江苏疫情实时数据及爬虫分析
Aug 02 Python
python利用while求100内的整数和方式
Nov 07 Python
python 读写中文json的实例详解
Oct 29 #Python
Python3 处理JSON的实例详解
Oct 29 #Python
深入理解Python中的*重复运算符
Oct 28 #Python
13个最常用的Python深度学习库介绍
Oct 28 #Python
python探索之BaseHTTPServer-实现Web服务器介绍
Oct 28 #Python
Python探索之实现一个简单的HTTP服务器
Oct 28 #Python
Python探索之SocketServer详解
Oct 28 #Python
You might like
用 PHP5 轻松解析 XML
2006/12/04 PHP
自定义php类(查找/修改)xml文档
2013/03/26 PHP
php不用正则验证真假身份证
2013/11/06 PHP
摘自织梦CMS的HTTP文件下载类
2015/08/08 PHP
php in_array() 检查数组中是否存在某个值详解
2016/11/23 PHP
用javascript实现的支持lrc歌词的播放器
2007/05/17 Javascript
Javascript 匿名函数及其代码模式原理
2010/03/19 Javascript
jQuery学习笔记之jQuery的DOM操作
2010/12/22 Javascript
JavaScript的事件绑定(方便不支持js的时候)
2013/10/01 Javascript
一个仿糯米弹框效果demo
2014/07/22 Javascript
jQuery选择器全集详解
2014/11/24 Javascript
jQuery浏览器CSS3特写兼容实例
2015/01/19 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
2015/06/05 Javascript
网页前端登录js按Enter回车键实现登陆的两种方法
2016/05/10 Javascript
JS实现给json数组动态赋值的方法示例
2020/03/19 Javascript
NodeJS简单实现WebSocket功能示例
2018/02/10 NodeJs
详解vue移动端日期选择组件
2018/02/22 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
2019/04/02 Javascript
小程序实现简单语音聊天的示例代码
2020/07/24 Javascript
[43:51]2018DOTA2亚洲邀请赛3月30日 小组赛B组 EG VS Secret
2018/03/31 DOTA
python实现将英文单词表示的数字转换成阿拉伯数字的方法
2015/07/02 Python
python将字典内容存入mysql实例代码
2018/01/18 Python
Python Datetime模块和Calendar模块用法实例分析
2019/04/15 Python
使用Python画股票的K线图的方法步骤
2019/06/28 Python
Python3 执行Linux Bash命令的方法
2019/07/12 Python
python实现图片,视频人脸识别(opencv版)
2020/11/18 Python
Python里面如何实现tuple和list的转换
2012/06/13 面试题
数控加工专业毕业生自荐信
2013/09/27 职场文书
标准导师推荐信(医学类)
2013/10/28 职场文书
高中教师先进事迹材料
2014/08/22 职场文书
沙滩主题婚礼活动策划方案
2014/09/15 职场文书
四风问题班子对照检查材料
2014/09/27 职场文书
先进班组材料范文
2014/12/25 职场文书
大学生入党自我鉴定范文
2019/06/21 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
Python实现简繁体转换
2021/06/07 Python