「笔记」Python生成二维码

本文的实验环境是 Python 3.6.1 |Anaconda 4.4.0 (64-bit),Win10

普通二维码

from PIL import Image
import qrcode

qr = qrcode.QRCode(
    version=2,  # 控制二维码的尺寸,此处为 25*25
    error_correction=qrcode.constants.ERROR_CORRECT_H,  # 控制二维码的错误纠正功能,此处为大约30%或更少的错误能被纠正
    box_size=10,  # 控制二维码中每个小格子包含的像素数
    border=1)  # 控制边框(二维码与图片边界的距离)

qr.add_data("https://www.jianshu.com/u/02877dbc2662")  # 设置二维码中包含的数据
qr.make(fit=True)  # 二维码大小自适应

img = qr.make_image()
img.save("qrcode.png")

中间含图片的二维码

from PIL import Image
import qrcode

qr = qrcode.QRCode(
    version=2,  # 控制二维码的尺寸,此处为 25*25
    error_correction=qrcode.constants.ERROR_CORRECT_H,  # 控制二维码的错误纠正功能,此处为大约30%或更少的错误能被纠正
    box_size=10,  # 控制二维码中每个小格子包含的像素数
    border=1)  # 控制边框(二维码与图片边界的距离)

qr.add_data("https://www.jianshu.com/u/02877dbc2662")  # 设置二维码中包含的数据
qr.make(fit=True)  # 二维码大小自适应

img = qr.make_image()
img = img.convert("RGBA")

icon = Image.open("748.png") #用于填充的图片 

img_w, img_h = img.size
factor = 4
size_w = int(img_w / factor)
size_h = int(img_h / factor)

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)

w = int((img_w - icon_w) / 2)
h = int((img_h - icon_h) / 2)
img.paste(icon, (w, h), icon)

img.save("filled_qrcode.png")
    原文作者:高正杰
    原文地址: https://www.jianshu.com/p/0c8e51d4dfb6
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞