python二维码操作:对QRCode和MyQR入门详解


Posted in Python onJune 24, 2019

python是所有编程语言中模块最丰富的

生活中常见的二维码功能在使用python第三方库来生成十分容易

python二维码操作:对QRCode和MyQR入门详解

三个大矩形是定位图案,用于标记二维码的大小。这三个定位图案有白边,通过这三个矩形就可以标识一个二维码了。

QRCode 生成这个二维码只用一行

import qrcode
 
qrcode.make("不睡觉干嘛呢").get_image().show()  #设置URL必须添加http://

安装导入QRCode

pip install qrcode #方法多,体量小

安装导入MyQR

pip install myqr  #操作简单,功能强大

QRCode 多种自定义方法

import qrcode
 
text = input("输入文字或URL:")
img =qrcode.make(text)
img.save()              #保存图片至本地目录,可以设定路径
img.show()

生成添加logo的二维码

from PIL import Image
import qrcode,os
 
def create_qrcode(url,qrcodename):
  qr = qrcode.QRCode(
    version=1, # 设置容错率为最高
    error_correction=qrcode.ERROR_CORRECT_H, # 用于控制二维码的错误纠正程度
    box_size=8, # 控制二维码中每个格子的像素数,默认为10
    border=1, # 二维码四周留白,包含的格子数,默认为4
    #image_factory=None, 保存在模块根目录的image文件夹下
    #mask_pattern=None
  )
 
  qr.add_data(url) # QRCode.add_data(data)函数添加数据
  qr.make(fit=True) # QRCode.make(fit=True)函数生成图片
 
  img = qr.make_image()
  img = img.convert("RGBA") # 二维码设为彩色
  logo = Image.open('xx.jpg') # 传gif生成的二维码也是没有动态效果的
 
  w , h = img.size
  logo_w , logo_h = logo.size
  factor = 4  # 默认logo最大设为图片的四分之一
  s_w = int(w / factor)
  s_h = int(h / factor)
  if logo_w > s_w or logo_h > s_h:
    logo_w = s_w
    logo_h = s_h
 
  logo = logo.resize((logo_w, logo_h), Image.ANTIALIAS)
  l_w = int((w - logo_w) / 2)
  l_h = int((h - logo_h) / 2)
  logo = logo.convert("RGBA")
  img.paste(logo, (l_w, l_h), logo)
  img.show()
  img.save(os.getcwd()+'/' + qrcodename + '.png', quality=100)

MyQR 生成动态二维码

from MyQR import myqr
import os
myqr.run(
  words='Hello world',     #在命令后输入链接或者句子作为参数,然后在程序的当前目录中产生相应的二维码图片文件,默认命名为” qrcode.png“
  version=1,          #设置容错率为最高默认边长是取决于你输入的信息的长度和使用的纠错等级;而默认纠错等级是最高级的H
  level='H',          #控制纠错水平,范围是L、M、Q、H,从左到右依次升高
  picture='WChat.png',     #用来将QR二维码图像与一张同目录下的图片相结合,产生一张黑白图片
  colorized=True,       #可以使产生的图片由黑白(False)变为彩色(True)的
  contrast=1.0,        #用以调节图片的对比度,1.0 表示原始图片,更小的值表示更低对比度,更大反之。默认为1.0。
  brightness=1.0,       #用来调节图片的亮度,其余用法和取值与 -con 相同
  save_name='test.png',    #控制文件名,格式可以是 .jpg, .png ,.bmp ,.gif ;
  save_dir=os.getcwd()     #控制位置。
)
Positional parameter
  words: str
Optional parameters
  version: int, from 1 to 40
  level: str, just one of ('L','M','Q','H')
  picutre: str, a filename of a image
  colorized: bool
  constrast: float
  brightness: float
  默认输出文件名是“ qrcode.png ",而默认存储位置是当前目录
  save_name: str, the output filename like 'example.png'
  save_dir: str, the output directory

参考资料

以上内容主要参考官方文档

这篇python二维码操作:对QRCode和MyQR入门详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python33 urllib2使用方法细节讲解
Dec 03 Python
简单了解Python下用于监视文件系统的pyinotify包
Nov 13 Python
python 创建弹出式菜单的实现代码
Jul 11 Python
Python操作mongodb数据库的方法详解
Dec 08 Python
python批量创建指定名称的文件夹
Mar 21 Python
Python PO设计模式的具体使用
Aug 16 Python
Django 框架模型操作入门教程
Nov 05 Python
Python数据可视化:泊松分布详解
Dec 07 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
Jan 15 Python
新年福利来一波之Python轻松集齐五福(demo)
Jan 20 Python
Python基于pip实现离线打包过程详解
May 15 Python
Python中使用subprocess库创建附加进程
May 11 Python
详解python编译器和解释器的区别
Jun 24 #Python
python爬虫之自制英汉字典
Jun 24 #Python
Pyqt5实现英文学习词典
Jun 24 #Python
set在python里的含义和用法
Jun 24 #Python
如何利用Anaconda配置简单的Python环境
Jun 24 #Python
python程序变成软件的实操方法
Jun 24 #Python
PyCharm安装Markdown插件的两种方法
Jun 24 #Python
You might like
php中使用array_filter()函数过滤空数组的实现代码
2014/08/19 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
JavaScript国旗变换效果代码
2008/08/13 Javascript
Javascript 汉字字节判断
2009/08/01 Javascript
js点击页面其它地方将某个显示的DIV隐藏
2012/07/12 Javascript
javascript采用数组实现tab菜单切换效果
2012/12/12 Javascript
Jquery实现弹出层分享微博插件具备动画效果
2013/04/03 Javascript
基于JQuery 选择器使用说明介绍
2013/04/18 Javascript
node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法
2014/11/20 Javascript
javascript浏览器窗口之间传递数据的方法
2015/01/20 Javascript
JS获取下拉框显示值和判断单选按钮的方法
2015/07/09 Javascript
详解jQuery Mobile自定义标签
2016/01/06 Javascript
Html5+jQuery+CSS制作相册小记录
2016/12/30 Javascript
WdatePicker.js时间日期插件的使用方法
2017/07/26 Javascript
JavaScript基础心法 数据类型
2018/03/05 Javascript
Angular HMR(热模块替换)功能实现方法
2018/04/04 Javascript
JavaScript 中 JSON.parse 函数 和 JSON.stringify 函数
2018/12/05 Javascript
vue.js引入外部CSS样式和外部JS文件的方法
2019/01/06 Javascript
详解如何用webpack4从零开始构建react开发环境
2019/01/27 Javascript
layui table表格数据的新增,修改,删除,查询,双击获取行数据方式
2019/11/14 Javascript
js实现登录拖拽窗口
2020/02/10 Javascript
基于PHP pthreads实现多线程代码实例
2020/06/24 Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
2020/08/03 Javascript
Python实现拷贝多个文件到同一目录的方法
2016/09/19 Python
如何用Python破解wifi密码过程详解
2019/07/12 Python
pytorch nn.Conv2d()中的padding以及输出大小方式
2020/01/10 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
2020/03/06 Python
下面代码从性能上考虑,有什么问题
2015/04/03 面试题
学期研究性学习个人的自我评价
2014/01/09 职场文书
《识字五》教学反思
2014/03/01 职场文书
毕业大学生自荐信
2014/06/17 职场文书
晋江市人民政府党组群众路线教育实践活动整改方案
2014/10/25 职场文书
培根随笔读书笔记
2015/07/01 职场文书
《西游记》读后感(3篇)
2019/09/20 职场文书
javascript canvas实现雨滴效果
2021/06/09 Javascript
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python