关于Qrcode的学习
python之qrcode模块生成二维码
用Python的qrcode包来生成二维码很简单
一、提前准备:
在cmd 中安装qrcode包库
如果已经安装可不必重复安装,查看已安装包库的方式:
Win+R =>pip list
命令:pip install qrcode
图示如下:
输入上述命令后按Enter即可(按下后会自动开始下载,并且有进度条,因为是从国外下载所以速递较慢。)
qrcode 依赖 Image 这个包:
- pip install Image
二、安装好之后就可以通过代码实现二维码了
1. 简单生成二维码:
import qrcode //模块导入//调用qrcode的make()方法传入url或者想要展示的内容
img = qrcode.make('http://www.baidu.com')//写入文件
with open('test.png', 'wb') as f:
//将生成的二维码名字为test.png;“Wb”表示以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件,并取别名为fimg.save(f)//保存该生成的图片img.show()//运行后显示二维码
生成的二维码:
import qrcode //模块导入//调用qrcode的make()方法传入url或者想要展示的内容
img = qrcode.make('欢迎来到我的简书')//保存
img.save("text.png")
生成的二维码:
此处并没有使用add_data()添加数据,make_image()生成二维码,而是使用qrcode.make(data)的方式获取im对象。qrcode.make()是qrcode提供简单调用接口。
- 2. 正常生成二维码的步骤:
- 创建QRCode对象
add_data()添加数据
make_image()创建二维码(返回im类型的图片对象)
自动打开图片,im.show()
- 3. QRCode参数详细说明:
- version: 一个整数,范围为1到40,表示二维码的大小(最小值是1,是个12×12的矩阵),如果想让程序自动生成,将值设置为
None 并使用 fit=True 参数即可。 - error_correction: 二维码的纠错范围,可以选择4个常量:
··1. ERROR_CORRECT_L 7%以下的错误会被纠正
··2. ERROR_CORRECT_M (default) 15%以下的错误会被纠正
··3. ERROR_CORRECT_Q 25 %以下的错误会被纠正
··4. ERROR_CORRECT_H. 30%以下的错误会被纠正
- boxsize: 每个点(方块)中的像素个数
- border: 二维码距图像外围边框距离,默认为4,而且相关规定最小为4
4. 参数配置后生成自定制二维码
import qrcodedata = 'http://www.baidu.com/'
img_file = r'保存路径'# 实例化QRCode生成qr对象
qr = qrcode.QRCode(version=1,error_correction=qrcode.constants.ERROR_CORRECT_H,box_size=10,border=4
)
# 传入数据
qr.add_data(data)qr.make(fit=True)# 生成二维码
img = qr.make_image()# 保存二维码
img.save(img_file)
# 展示二维码
img.show()
三、额外添加
往往我们看到的二维码中间都有一张图片或者用户头像,如何才能生成这样一张二维码?
利用PIL库中image模块的paste函数
img.paste(path,where,mask=None)
其中,img为image对象;path为所添加图片;where为tuple,如:(x,y),表示图片所在二维码的横纵坐标
import qrcode
from PIL import Image
import matplotlib.pyplot as pltdef getQRcode(data, file_name):qr = qrcode.QRCode(version=1,error_correction=qrcode.constants.ERROR_CORRECT_H,box_size=5,border=4,)# 添加数据qr.add_data(data)# 填充数据qr.make(fit=True)# 生成图片img = qr.make_image(fill_color="green", back_color="white")# 添加logo,打开logo照片icon = Image.open("1.jpg")# 获取图片的宽高img_w, img_h = img.size# 参数设置logo的大小factor = 6size_w = int(img_w / factor)size_h = int(img_h / factor)icon_w, icon_h = icon.sizeif icon_w > size_w:icon_w = size_wif icon_h > size_h:icon_h = size_h# 重新设置logo的尺寸icon = icon.resize((icon_w, icon_h), Image.ANTIALIAS)# 得到画图的x,y坐标,居中显示w = int((img_w - icon_w) / 2)h = int((img_h - icon_h) / 2)# 黏贴logo照img.paste(icon, (w, h), mask=None)# 终端显示图片plt.imshow(img)plt.show()# 保存imgimg.save(file_name)return imgif __name__ == '__main__':getQRcode("世情薄,人情恶,雨送黄昏花易落。晓风干,泪痕残,欲笺心事,独语斜阑。""难,难,难!人成各,今非昨,病魂常似秋千索。角声寒,夜阑珊,怕人寻问,咽泪装欢。瞒,瞒,瞒!", 'my.png')
最后,送你一首宋词,扫码免费得!!!
原作:SlashBoyMr_wang
来源:简书
关于Qrcode的学习相关推荐
- python学习 —— 使用QRCode包生成二维码
我使用的是python3,最简单的方法就是使用QRCode,如果没有安装QRCode package,那么可以使用下面命令进行安装: pip3 install QRCode 然后,测试一下: from ...
- KING_C#学习之QRCode二维码(一)——基础知识扫盲
在移动互联网快速发展下,二维码的应用非常广泛,且前景甚好.现在的登陆.分享等功能都可以利用二维码快速便捷地把信息传送出去,我个人是比较喜欢用这个技术,所以凭着兴趣以及二维码的强大,对二维码的相关知识做 ...
- 转载:使用 OpenCV 识别 QRCode
原文链接:http://coolshell.cn/articles/10590.html#jtss-tsina 识别二维码的项目数不胜数,每次都是开箱即用,方便得很. 这次想用 OpenCV 从零识别 ...
- 2017-2018-2 20179204《网络攻防实践》第八周学习总结
第1节 教材学习内容总结 本周学习了教材第八章的内容. 1.1 linux操作系统基本框架概述 发展出众多操作系统发行版:ubuntu.debian.fedora.centos.rhel.opensu ...
- 学习:二维码、QR码、J4L-QRCode、java
转自:http://baijinshan.iteye.com/blog/1004554 学习:二维码.QR码.J4L-QRCode.java Java企业应用网络应用Rails应用服务器 开源码 J ...
- python训练营微信公众号真实性_用python进行微信公众号开发(仅测试学习)
今天看到篇教程,是用python开发微信公众号的,觉得有意思,就敲代码实现了一下,成功后更觉得好玩,故记录,方便开发深入时使用. 基础背景介绍: 首先得有个人微信号(没有自行注册),为方便测试学习: ...
- 初探swift语言的学习笔记一(基本数据类型)
作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/28258805 转载请注明出处 如果觉得文章对你有所帮助,请通过留言 ...
- 学习响应式BootStrap来写融职教育网站,Bootsrtap第十四天,PK模块的开发
<!DOCTYPE html> <html lang="zh_CN"> <head><meta charset="UTF-8&q ...
- 学习响应式BootStrap来写融职教育网站,Bootsrtap第十三天讲师列表栏目
<!DOCTYPE html> <html lang="zh_CN"> <head><meta charset="UTF-8&q ...
最新文章
- 局域网瘫痪 傀儡主机的DDoS***
- c2064 项不会计算为接受0个参数的函数_【JS必知必会】高阶函数详解与实战
- RHEL 5 密码破解和防止别人通过单用户模式修改密码
- 海思 HI35* rtsp服务器
- 查拉斯图拉的“没落”
- ITextSharp生成PDF
- Go的内存管理(最新学习)
- 无刷电机反电动势过零检测
- 闰年流程图——18网三杨捷
- AJax错误WebForm1没有定义的javascript错误的解决方法
- 常用连接linux工具
- 在 Hexo 中使用 iconfont 图标
- 走进中关村软件园-光环敏捷PMI-ACP落地分享会
- html页面禁止保存图片,JavaScript 禁止用户保存图片的实现代码
- 网上值得注册的论坛(最新整理)
- #天府TV#《什么是成都》爆红背后,还有上千热泪盈眶留言!
- 浦发银行面试笔试经历
- 阿里云 企业邮箱域名解析(DNS)
- 钢筋计数VOC数据集
- oracle11g ocr voting,Oracle 11g RAC OCR,VOTING DISK存储全部损坏,利用自动备份,恢复到新位置...
热门文章
- 印花弹性白胶浆外观品质控制方法
- 华为拓扑---***的配置
- Incorrect string value: ‘\xE5\xB0\x8F\xE9\x9B\xA8...‘ for column ‘xxx‘ at row 1
- Android Studio第一次作业:APP门户界面设计
- VSCode快速初始化html文件
- Codeforces Round #777 (Div. 2) 题解
- 中国耳机能否把AirPods拉下铁王座,全看一颗“芯”
- Studio One5数字音乐制作工具
- 如何降低开发团队之间的沟通成本
- 【听】乌合之众,团队or团伙