python生成二维码脚本

python 生成二维码

参考文章

1. https://www.cnblogs.com/sunzhiqi/p/10600159.html
2. https://www.cnblogs.com/jubing/p/11646195.html
3. https://www.cnblogs.com/piaodoo/p/13940410.html

代码

# 图片为当前路径,和py文件一个目录
# 二维码脚本
# MyQR库 不支持中文
from MyQR import myqr  #注意大小写
from PIL import Image
# qrcode 支持中文
import qrcode
# 普通二维码
def common_qr(url):
    #不支持中文
    # 图片名称为 qrcode.png
    myqr.run(words=url)
    # 打开图片
    img = Image.open("qrcode.png")
    img.show()
# 带插图(背景图)二维码
def insert_picture(url):
    myqr.run(
        words=url,
        # 扫描二维码后,显示的内容,或是跳转的链接
        version=3,  # 设置容错率 图片大小?
        level='H',  # 控制纠错水平,范围是L、M、Q、H,从左到右依次升高
        picture='xinweng.png',  # 图片所在目录,可以是动图
        colorized=True,  # 黑白(False)还是彩色(True)
        contrast=1.0,  # 用以调节图片的对比度,1.0 表示原始图片。默认为1.0。
        brightness=1.0,  # 用来调节图片的亮度,用法同上。
        save_name='chatuQr.png',  # 控制输出文件名,格式可以是 .jpg, .png ,.bmp ,.gif
    )
    img = Image.open("chatuQr.png")
    img.show()
# 花样
def picture_qr(url,imgurl):
    myqr.run(
        words=url,
        version=4,
        picture=imgurl,
        # colorized=True,
        save_name='artisticColor.png'
    )
    img = Image.open("artisticColor.png")
    img.show()
# qrcode
def common_qrcode(content):
    Image = qrcode.make(content)  # 简单二维码
    Image.show()

def common_qrcode_up(content):
    # version是二维码的尺寸,数字大小决定二维码的密度       error_correction:是指误差
    # box_size:参数用来控制二维码的每个单元(box)格有多少像素点
    # border: 参数用控制每条边有多少个单元格(默认值是4,这是规格的最小值
    qr = qrcode.QRCode(version=3,
                       error_correction=qrcode.constants.ERROR_CORRECT_L,
                       box_size=8,
                       border=4,
                       )
    # 添加数据
    qr.add_data(content)
    # 生成二维码
    qr.make(fit=True)
    img = qr.make_image()
    # 保存到当前路径
    img.save(r"qrcode_code.png")
    img.show()

def qrcode_logo(content,imgurl):
    qr = qrcode.QRCode(version=5, error_correction=qrcode.constants.ERROR_CORRECT_H, box_size=8, border=4)
    qr.add_data(content)
    qr.make(fit=True)
    img = qr.make_image()
    img = img.convert("RGBA")
    # add logo
    icon = Image.open(imgurl)
    # 获取 logo尺寸
    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)
    icon = icon.convert("RGBA")
    img.paste(icon, (w, h), icon)
    img.show()
    # img.save('D:/qrcodelogo.png')
if __name__ == '__main__':
    url = "www.baidu.com"
    content = "=你好"
    imgurl = "xinweng.png"
    imgurl_two = "biaoqing.jpg"
    common_qr(url)
    insert_picture(url)
    common_qrcode(content)
    common_qrcode_up(content)
    qrcode_logo(content,imgurl)
    picture_qr(url,imgurl_two)

二维码样子

在这里插入图片描述
在这里插入图片描述
其它普通就不粘贴了

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值