You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python简便实现图片转二维码功能

Python实现图片相关二维码生成方案

首先修正你现有代码的两处语法错误:

  • PIL导入语句不完整,正确写法为from PIL import Image
  • 函数名存在拼写错误,creatig_qr_code应改为create_qr_code

你当前写的是最基础的文本二维码生成逻辑,关于你提到的「用Python将图片转换为二维码」的需求,首先需要明确一个基础限制:

*标准静态二维码的单码最大存储容量不到3KB,无法直接存储常规尺寸的图片文件。日常扫码能看到图片的场景,本质都是二维码内存储了图片的访问链接,扫码后自动加载链接对应的图片资源。

常见的图片相关二维码实现有两类,都可以用Python快速实现:

1. 生成中间嵌入logo图片的普通二维码

这是最常用的场景,只需要依赖你已经在用的qrcode和Pillow库即可实现,注意要把二维码容错率调到最高,避免嵌入logo后无法识别:

import qrcode
from PIL import Image

def create_qr_with_logo(content, logo_path, save_path, logo_size_ratio=0.2):
    # 初始化高容错率二维码
    qr = qrcode.QRCode(
        error_correction=qrcode.constants.ERROR_CORRECT_H,
        box_size=10,
        border=4,
    )
    qr.add_data(content)
    qr.make(fit=True)
    qr_img = qr.make_image(fill_color="black", back_color="white").convert("RGBA")

    # 调整logo尺寸
    logo = Image.open(logo_path).convert("RGBA")
    qr_width, qr_height = qr_img.size
    logo_side_length = int(min(qr_width, qr_height) * logo_size_ratio)
    logo = logo.resize((logo_side_length, logo_side_length), Image.Resampling.LANCZOS)

    # 将logo粘贴到二维码中心位置
    paste_pos = ((qr_width - logo_side_length) // 2, (qr_height - logo_side_length) // 2)
    qr_img.paste(logo, paste_pos, mask=logo)
    qr_img.save(save_path)

# 调用示例
if __name__ == "__main__":
    create_qr_with_logo(
        content="替换为你要编码的文本/图片访问链接",
        logo_path="your_logo_file.png",
        save_path="qr_code_with_logo.png"
    )

2. 生成视觉效果由目标图片构成的艺术二维码

如果你需要整个二维码的视觉呈现和目标图片一致(即看起来是图片、扫码可识别内容的艺术二维码),可以用MyQR库实现,先执行安装命令:
pip install myqr

调用代码非常简单:

from MyQR import myqr

myqr.run(
    words="替换为你要编码的文本/图片访问链接",
    picture="your_target_image.png", # 用于生成二维码视觉效果的目标图片路径
    colorized=True, # 设置为True生成彩色二维码,False为黑白效果
    save_name="art_style_qr.png"
)

内容的提问来源于stack exchange,提问作者I'm not a robot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 19:45:59