python笔记 利用python qrcode 自动生成二维码

时间:2019-09-09
本文章向大家介绍python笔记 利用python qrcode 自动生成二维码,主要包括python笔记 利用python qrcode 自动生成二维码使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

 1.简单二维码

1 import qrcode
2 
3 # 制作二维码实例,可以添加文字,数字,URL
4 qrc = qrcode.make(r'https://www.baidu.com')
5 # 保存二维码
6 qrc.save('d:/qr.png')

 2.二维码中加入图片

# 导入图像处理库PIL的image方法
from PIL import Image
# qrcode是第三方库,需要pip install qrcode安装
import qrcode
 
# 初步生成二维码图像
qr = qrcode.QRCode(version=None,error_correction=qrcode.constants.ERROR_CORRECT_H,box_size=8,border=4)
# 添加二维码信息,可以是文字、数字、url
qr.add_data("http://www.baidu.com")
# 生成二维码实例
qr.make(fit=True)
 
# 把实例转换成图片
img = qr.make_image()
# 把颜色模式转换为RGBA
img = img.convert("RGBA")
 
# 打开logo文件,二维码中心logo图片
icon = Image.open("D:/favicon.jpg")
 

# 先得出二维码的宽和高
img_w,img_h = img.size
factor = 4
# 通过二维码宽高计算出logo图片宽和高的最大限度
size_w = int(img_w / factor)
size_h = int(img_h / factor)
 

# 获取logo的宽和高
icon_w,icon_h = icon.size
#比较logo宽高和最大限度宽高,如果超过最大限度就将logo尺寸调整到最大限度
if icon_w >size_w:
    icon_w = size_w
if icon_h > size_h:
    icon_h = size_h
# 重新调整logo的尺寸  Image.NEAREST :低质量 Image.BILINEAR:双线性
# Image.BICUBIC :三次样条插值 Image.ANTIALIAS:高质量
icon = icon.resize((icon_w,icon_h),Image.ANTIALIAS)
 

# 根据logo和图片的长宽确定logo的位置
w = int((img_w - icon_w)/2)
h = int((img_h - icon_h)/2)
# 将logo颜色模式转换为RGBA
icon = icon.convert("RGBA")
# 将logo图片粘贴到二维码的指定位置
img.paste(icon,(w,h))
 
# 保存二维码到指定位置,设置二维码格式
img.save('D:/createlogo.png')

参数含义:
version:值为1~40的整数,控制二维码的大小(最小值是1,是个12×12的矩阵)。 如果想让程序自动确定,将值设置为 None 并使用 fit 参数即可。

error_correction:控制二维码的错误纠正功能。可取值下列4个常量。
  ERROR_CORRECT_L:大约7%或更少的错误能被纠正。
  ERROR_CORRECT_M(默认):大约15%或更少的错误能被纠正。
  ROR_CORRECT_H:大约30%或更少的错误能被纠正。

box_size:控制二维码中每个小格子包含的像素数。

border:控制边框(二维码与图片边界的距离)包含的格子数(默认为4,是相关标准规定的最小值)

原文地址:https://www.cnblogs.com/liqinsan/p/11490955.html