Python设计术语自己的二维码

# 带有logo图案的二维码
from PIL import Image
import qrcode


def QR_myself():
    # QRCode()这里我们创建了一个对象:
    qr = qrcode.QRCode(version=5, error_correction=qrcode.constants.ERROR_CORRECT_H, box_size=10, border=4)
    # version:值为1~40的整数,控制二维码的大小(最小值是1,是个21×21的矩阵)
    # error_correction:控制二维码的错误纠正功能。可取值下列4个常量:
    '''
    qrcode.constants.ERROR_CORRECT_X:
        1. X=L时,大约7%或更少的错误能被纠正。 
        2. X=M(默认)时,大约15%或更少的错误能被纠正。
        3. X=Q时,25%以下的错误会被纠正。
        4. X=H时,大约30%或更少的错误能被纠正。
    '''
    # box_size:控制二维码中每个小格子包含的像素数,默认为10。
    # border:控制边框(二维码与图片边界的距离)包含的格子数(默认为4)

    # 向二维码中添加信息
    qr.add_data("自己的信息")
    qr.make(fit=True)
    img = qr.make_image()
    # ##################################################二维码里加入头像或者图片
    # 二维码设置为彩色
    img = img.convert('RGBA')
    # 打开logo图片
    logo = Image.open(r"图片路径及名称")
    # 二维码尺寸
    img_w, img_h = img.size
    # 默认LOGO最大设为图片的1/4
    factor = 4
    # 最大logo尺寸
    size_w = int(img_w / factor)
    size_h = int(img_h / factor)
    # logo的尺寸
    logo_w, logo_h = logo.size
    if logo_w > size_w or logo_h > size_h:
        logo_w = size_w
        logo_h = size_h
    logo = logo.resize((logo_w, logo_h), Image.LANCZOS).convert('RGBA')
    l_w = int((img_w - logo_w) / 2)
    l_h = int((img_h - logo_h) / 2)
    # 替换指定位置
    img.paste(logo, (l_w, l_h), logo)
    # ##################################################二维码里加入头像或者图片
    img.show()
    # img.save('二维码保存路径及名称')

if __name__ == '__main__':
    QR_myself()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值