Python打发无聊时光:11.用qrcode库制作能跳转网站的二维码

一、选择链接和图片

选择一个你想跳转的链接,比如这是我公众号一篇文章的链接:https://mp.weixin.qq.com/s/AFFUWnl8geuBG6m7OCyyqw

随便选择一个图片,保存在同一个路径,比如我选择的图片为Mandalorian.png

二、完整代码

import qrcode
from PIL import Image

# 目标网址
website_url = "https://mp.weixin.qq.com/s/AFFUWnl8geuBG6m7OCyyqw"

# 创建二维码对象
qr = qrcode.QRCode(
    version=1,
    error_correction=qrcode.constants.ERROR_CORRECT_H,
    box_size=10,
    border=4
)

# 添加数据到二维码
qr.add_data(website_url)
qr.make(fit=True)

# 生成二维码图像
img = qr.make_image(fill_color="black", back_color="white").convert('RGB')

# 加载彩色的卡通图案
cartoon_img_path = "Mandalorian.png"
cartoon_img = Image.open(cartoon_img_path)

# 调整卡通图案的大小
cartoon_img.thumbnail((img.size[0] * 0.2, img.size[1] * 0.2), Image.Resampling.LANCZOS)

# 检查是否存在透明度通道
if cartoon_img.mode == 'RGBA':
    # 分离透明度通道作为一个遮罩
    mask = cartoon_img.split()[3]
elif cartoon_img.mode == 'LA':
    # 对于'L'和'Alpha'模式,遮罩是alpha通道
    mask = cartoon_img.split()[1]
else:
    # 如果不存在透明通道(例如,JPEG图像),则创建一个全白的遮罩(即不透明)
    mask = Image.new('L', cartoon_img.size, 255)

# 计算卡通图案放置的位置(二维码中心)
pos = ((img.size[0] - cartoon_img.size[0]) // 2, (img.size[1] - cartoon_img.size[1]) // 2)

# 将卡通图案添加到二维码中,使用提取的透明度遮罩来正确处理透明部分
img.paste(cartoon_img, pos, mask)

# 保存生成的二维码图像
img.save("website_with_qrcode.png")

print("QR Code with cartoon image generated and saved as website_with_qrcode.png")

website_url处可改为你需要跳转的网站

cartoon_img_path改为你要在二维码中显示的图片

img.save("website_with_qrcode.png")改为你想保存的文件名

三、运行结果

  • 15
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值