
二维码已成为现代生活中不可或缺的一部分,从支付到信息分享,无处不在。本文将介绍如何使用Python轻松生成各种风格的二维码,包括基础二维码和带有自定义背景的高级二维码,附上代码,可以直接应用。
首先安装必要的库:
pip install qrcode[pil] pillowimport qrcode
def generate_basic_qrcode(data, filename='basic_qrcode.png',
fill_color='black', back_color='white'):
"""
生成基础二维码
参数:
data: 要编码的内容
filename: 保存的文件名
fill_color: 二维码颜色
back_color: 背景颜色
"""
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
qr.add_data(data)
qr.make(fit=True)
img = qr.make_image(fill_color=fill_color, back_color=back_color)
img.save(filename)
print(f"二维码已生成并保存为 {filename}")
# 使用示例
generate_basic_qrcode(" https://www.example.com ", "example_qrcode.png")代码执行结果及扫码后效果如下:

这段代码会生成一个标准的黑白二维码,你可以通过修改 fill_color 和 back_color 参数来改变颜色。
import qrcode
from PIL import Image, ImageDraw
def generate_styled_qrcode(data, filename='styled_qrcode.png',
fill_color='#3498db', back_color='#f1c40f',
logo_path=None):
"""
生成带样式的二维码,可选添加中心logo
参数:
data: 要编码的内容
filename: 保存的文件名
fill_color: 二维码颜色(十六进制)
back_color: 背景颜色(十六进制)
logo_path: 中心logo图片路径(可选)
"""
qr = qrcode.QRCode(
version=2,
error_correction=qrcode.constants.ERROR_CORRECT_H,
box_size=8,
border=2,
)
qr.add_data(data)
qr.make(fit=True)
img = qr.make_image(fill_color=fill_color, back_color=back_color)
img = img.convert('RGBA')
if logo_path:
logo = Image.open(logo_path)
logo_size = min(img.size) // 4
logo = logo.resize((logo_size, logo_size), Image.LANCZOS)
pos = ((img.size[0] - logo.size[0]) // 2,
(img.size[1] - logo.size[1]) // 2)
img.paste(logo, pos, logo)
img.save(filename)
print(f"样式化二维码已生成并保存为 {filename}")
# 使用示例
generate_styled_qrcode(" https://www.example.com ",
"styled_qrcode.png",
fill_color='#e74c3c',
back_color='#ecf0f1',
logo_path='logo.png')代码执行结果及扫码后的效果如下:

import qrcode
from PIL import Image, ImageOps
def generate_bg_qrcode(data, bg_path, output_path='bg_qrcode.png',
qr_color=(0, 0, 0), opacity=0.8):
"""
生成带背景图片的二维码
参数:
data: 要编码的内容
bg_path: 背景图片路径
output_path: 输出文件路径
qr_color: 二维码颜色(RGB元组)
opacity: 二维码不透明度(0-1)
"""
# 生成基础二维码
qr = qrcode.QRCode(
version=3,
error_correction=qrcode.constants.ERROR_CORRECT_H,
box_size=10,
border=2,
)
qr.add_data(data)
qr.make(fit=True)
qr_img = qr.make_image(fill_color="black", back_color="white")
qr_img = qr_img.convert("RGBA")
# 处理背景图片
bg = Image.open(bg_path)
bg = ImageOps.fit(bg, qr_img.size, method=Image.LANCZOS)
# 创建二维码遮罩
mask = qr_img.convert("L").point(lambda x: 255 if x < 128 else 0)
# 合成图像
colored_qr = Image.new("RGB", qr_img.size, qr_color)
final = Image.composite(colored_qr, bg, mask)
# 调整二维码不透明度
if opacity < 1:
alpha = qr_img.split()[3]
alpha = alpha.point(lambda x: int(x * opacity))
qr_img.putalpha(alpha)
final = Image.alpha_composite(bg.convert("RGBA"), qr_img)
final.save(output_path)
print(f"带背景的二维码已生成并保存为 {output_path}")
# 使用示例
generate_bg_qrcode(" https://www.example.com ",
"background.jpg",
"final_qrcode.png",
qr_color=(255, 0, 0),
opacity=0.7)1、version: 控制二维码的大小(1-40),数字越大二维码越大;
2、error_correction: 纠错级别,有四个选项:
3、box_size: 每个“小方块”的像素数;
4、border: 二维码边缘的空白区域大小;
代码运行结果及扫码效果:


通过Python的qrcode库可以轻松生成各种风格的二维码。从简单的黑白二维码到带有自定义背景和logo的高级二维码,Python提供了强大的工具来实现这些功能。根据实际的需求调整参数,创造出独一无二的二维码设计。
“无他,惟手熟尔”!有需要就用起来。
如果你觉得这篇文章有用,欢迎点赞、转发、收藏、留言、推荐❤!
本文分享自 Nicholas与Pypi 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!