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 相关文章推荐
python检测某个变量是否有定义的方法
May 20 Python
在Python的列表中利用remove()方法删除元素的教程
May 21 Python
Python正则表达式匹配中文用法示例
Jan 17 Python
解决python3 json数据包含中文的读写问题
May 10 Python
python实现一个简单的ping工具方法
Jan 31 Python
Python 实现Numpy中找出array中最大值所对应的行和列
Nov 26 Python
django xadmin 管理器常用显示设置方式
Mar 11 Python
基于python实现检索标记敏感词并输出
May 07 Python
Python基于numpy模块实现回归预测
May 14 Python
python名片管理系统开发
Jun 18 Python
python中有帮助函数吗
Jun 19 Python
Python内置包对JSON文件数据进行编码和解码
Apr 12 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打造属于自己的MVC框架
2012/03/07 PHP
php笔记之:数据类型与常量的使用分析
2013/05/14 PHP
php中请求url的五种方法总结
2017/07/13 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
2020/01/26 PHP
jQuery Ajax之$.get()方法和$.post()方法
2009/10/12 Javascript
javascript 哈希表(hashtable)的简单实现
2010/01/20 Javascript
javascript 嵌套的函数(作用域链)
2010/03/15 Javascript
jQuery EasyUI 中文API Layout(Tabs)
2010/04/27 Javascript
基于jquery点击自以外任意处,关闭自身的代码
2012/02/10 Javascript
javascript倒计时功能实现代码
2012/06/07 Javascript
Node.js实现JS文件合并小工具
2016/02/02 Javascript
基于jQuery实现页面搜索功能
2020/03/26 Javascript
JavaScript中的对象和原型(一)
2016/08/12 Javascript
微信小程序 图片边框解决方法
2017/01/16 Javascript
详解Vue监听数据变化原理
2017/03/08 Javascript
Bootstrap fileinput文件上传组件使用详解
2017/06/06 Javascript
基于LayUI实现前端分页功能的方法
2017/07/22 Javascript
vue组件生命周期详解
2017/11/07 Javascript
基于node打包可执行文件工具_Pkg使用心得分享
2018/01/24 Javascript
webpack打包node.js后端项目的方法
2018/03/10 Javascript
微信小程序--获取用户地理位置名称(无须用户授权)的方法
2019/04/29 Javascript
Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)
2019/10/25 Javascript
python3.6连接MySQL和表的创建与删除实例代码
2017/12/28 Python
python石头剪刀布小游戏(三局两胜制)
2021/01/20 Python
python中os包的用法
2020/06/01 Python
浅谈Python程序的错误:变量未定义
2020/06/02 Python
Gibson London官网:以地道的英国男装而著称
2019/12/06 全球购物
Booking.com德国:预订最好的酒店和住宿
2020/02/16 全球购物
mysql_pconnect()和mysql_connect()有什么区别
2012/05/25 面试题
职务说明书范文
2014/05/07 职场文书
公司经理任命书
2014/06/05 职场文书
节能环保口号
2014/06/12 职场文书
医学专业毕业生推荐信
2014/07/12 职场文书
上课说话检讨书500字
2014/11/01 职场文书
pytorch 预训练模型读取修改相关参数的填坑问题
2021/06/05 Python