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

所属分类: 脚本专栏 / python 阅读数: 1963
收藏 0 赞 0 分享

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

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

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

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常见加密模块用法分析【MD5,sha,crypt模块】

这篇文章主要介绍了Python常见加密模块用法,结合实例形式较为详细的分析了MD5,sha与crypt模块加密的相关实现方法与操作技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

Python向日志输出中添加上下文信息

这篇文章主要介绍了Python向日志输出中添加上下文信息的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Python实现的简单dns查询功能示例

这篇文章主要介绍了Python实现的简单dns查询功能,结合实例形式分析了Python基于socket模块的dns信息查询实现技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

利用Anaconda完美解决Python 2与python 3的共存问题

Anaconda 是 Python 的一个发行版,如果把 Python 比作 Linux,那么 Anancoda 就是 CentOS 或者 Ubuntu,下面这篇文章主要给大家介绍了利用Anaconda完美解决Python 2与python 3共存问题的相关资料,文中介绍的非常详
收藏 0 赞 0 分享

Python随机读取文件实现实例

这篇文章主要介绍了Python随机读取文件的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

用生成器来改写直接返回列表的函数方法

下面小编就为大家带来一篇用生成器来改写直接返回列表的函数方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

python爬虫入门教程--快速理解HTTP协议(一)

http协议是互联网里面最重要,最基础的协议之一,我们的爬虫需要经常和http协议打交道。下面这篇文章主要给大家介绍了关于python爬虫入门之快速理解HTTP协议的相关资料,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
收藏 0 赞 0 分享

老生常谈Python进阶之装饰器

下面小编就为大家带来一篇老生常谈Python进阶之装饰器。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

浅谈Python基础之I/O模型

下面小编就为大家带来一篇浅谈Python基础之I/O模型。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

python如何获取服务器硬件信息

这篇文章主要为大家详细介绍了python获取服务器硬件信息的相关代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享
查看更多