python 二维码

来源:转载

qrcode模块简单使用

import qrcode
qr = qrcode.QRCode(
version=1,
# 容错大小有四个级别,L最小L M Q H
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
qr.add_data('hello, qrcode')
qr.make(fit=True)
img = qr.make_image()
img.save('123.png')

带logo的二维码,需要设置容错率比较高




import qrcode
import os
qr = qrcode.QRCode(
version=3,
# 容错大小有四个级别,L最小L M Q H
error_correction=qrcode.constants.ERROR_CORRECT_M,
box_size=20,
border=4,
)
qr.add_data('hello, qrcode')
qr.make(fit=True)
img = qr.make_image()
img.save('123.png')
from PIL import Image# 生成带logo的二维码图片
def make_logo_qr(str, logo, save):
# 参数配置
qr = qrcode.QRCode(
version=6,
error_correction=qrcode.constants.ERROR_CORRECT_H,
box_size=8,
border=2
)
# 添加转换内容
qr.add_data(str)
#
qr.make(fit=True)
# 生成二维码
img = qr.make_image()
#
img = img.convert("RGBA")
# 添加logo
if logo and os.path.exists(logo):
icon = Image.open(logo)
# 获取二维码图片的大小
img_w, img_h = img.size
factor = 4
size_w = int(img_w / factor)
size_h = int(img_h / factor)
# logo图片的大小不能超过二维码图片的1/4
icon_w, icon_h = icon.size
if icon_w > size_w:
icon_w = size_w
if icon_h > size_h:
icon_h = size_h
icon = icon.resize((icon_w, icon_h), Image.ANTIALIAS)
# 详见:http://pillow.readthedocs.org/handbook/tutorial.html
# 计算logo在二维码图中的位置
w = int((img_w - icon_w) / 2)
h = int((img_h - icon_h) / 2)
icon = icon.convert("RGBA")
img.paste(icon, (w, h), icon)
# 详见:http://pillow.readthedocs.org/reference/Image.html#PIL.Image.Image.paste
# 保存处理后图片
img.save(save)make_logo_qr('hello', 'hello.png', 'logoer.png')

分享给朋友:
您可能感兴趣的文章:
随机阅读: