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库urllib与urllib2主要区别分析
Jul 13 Python
总结Python编程中三条常用的技巧
May 11 Python
django通过ajax发起请求返回JSON格式数据的方法
Jun 04 Python
Python实现复杂对象转JSON的方法示例
Jun 22 Python
利用numpy实现一、二维数组的拼接简单代码示例
Dec 15 Python
Python实现从log日志中提取ip的方法【正则提取】
Mar 31 Python
使用Python Pandas处理亿级数据的方法
Jun 24 Python
python的列表List求均值和中位数实例
Mar 03 Python
Pycharm及python安装详细教程(图解)
Jul 31 Python
Python configparser模块封装及构造配置文件
Aug 07 Python
详解win10下pytorch-gpu安装以及CUDA详细安装过程
Jan 28 Python
关于python类SortedList详解
Sep 04 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
Laravel学习教程之IOC容器的介绍与用例
2017/08/15 PHP
js下用gb2312编码解码实现方法
2009/12/31 Javascript
js 巧妙去除数组中的重复项
2010/01/25 Javascript
js数据验证集合、js email验证、js url验证、js长度验证、js数字验证等简单封装
2010/05/15 Javascript
JS实现动态生成表格并提交表格数据向后端
2020/11/25 Javascript
Bootstrap编写一个兼容主流浏览器的受众门户式风格页面
2016/07/01 Javascript
基于jQuery实现弹出可关闭遮罩提示框实例代码
2016/07/18 Javascript
js 打开新页面在屏幕中间的实现方法
2016/11/02 Javascript
微信小程序购物商城系统开发系列-目录结构介绍
2016/11/21 Javascript
vue.js指令和组件详细介绍及实例
2017/04/06 Javascript
AngularJS 验证码60秒倒计时功能的实现
2017/06/05 Javascript
ES6 javascript中Class类继承用法实例详解
2017/10/30 Javascript
浅析Vue 和微信小程序的区别、比较
2018/08/03 Javascript
Vue实例的对象参数options的几个常用选项详解
2019/11/08 Javascript
vue+vant实现商品列表批量倒计时功能
2020/01/13 Javascript
如何实现iframe父子传参通信
2020/02/05 Javascript
NodeJS配置CORS实现过程详解
2020/12/02 NodeJs
python实现批量转换文件编码(批转换编码示例)
2014/01/23 Python
Python入门之三角函数atan2()函数详解
2017/11/08 Python
python 获取sqlite3数据库的表名和表字段名的实例
2019/07/17 Python
TensorFlow基于MNIST数据集实现车牌识别(初步演示版)
2019/08/05 Python
Python终端输出彩色字符方法详解
2020/02/11 Python
Python使用for生成列表实现过程解析
2020/09/22 Python
CSS3实现背景透明文字不透明的示例代码
2018/06/25 HTML / CSS
详解html5 canvas 微信海报分享(个人爬坑)
2018/01/12 HTML / CSS
iPhoneX安全区域(Safe Area)底部小黑条在微信小程序和H5的屏幕适配
2020/04/08 HTML / CSS
澳大利亚家用电器在线商店:Billy Guyatts
2020/05/05 全球购物
如何写毕业求职自荐信
2013/11/06 职场文书
小学音乐教学反思
2014/02/05 职场文书
运动会稿件100字
2014/02/21 职场文书
毕业生个人求职自荐信
2014/02/26 职场文书
社区领导班子四风问题原因分析及整改措施
2014/09/28 职场文书
校园游戏活动新闻稿
2014/10/15 职场文书
python 开心网和豆瓣日记爬取的小爬虫
2021/05/29 Python
Mybatis-Plus 使用 @TableField 自动填充日期
2022/04/26 Java/Android
Python使用pandas导入xlsx格式的excel文件内容操作代码
2022/12/24 Python