使用Python打造专属二维码的详细教程

 更新时间:2026年05月12日 08:25:01   作者:LSTM97  
本文主要讲解如何使用Python生成具有品牌特色的,可用于线下活动物料设计的二维码,主要使用Spacy.Barcode库,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下

想象一下这个场景:你正在负责一个线下活动的宣传物料设计,需要在海报、展架、易拉宝上放一个二维码。普通的黑白二维码虽然能用,但总觉得少了点感觉——品牌色没法体现,连个logo都没有。

其实,用Python来生成既美观又实用的二维码,比你想象的要简单得多。今天我们就来聊聊这件事。

准备工作:一行代码搞定

首先要安装需要用到的库。打开终端,执行:

pip install spire.barcode

安装完成后,建议联系官方申请一个临时许可证。这不是必须的,但有了许可证,生成的二维码就不会带上水印,品质也会更好。

第一个二维码:5分钟就能跑起来

让我们从最基础的开始。下面的代码会生成一个包含网址信息的二维码:

from spire.barcode import *

def save_image(filename, data):
    with open(filename, "wb") as f:
        f.write(data)

# 激活许可证(替换成你自己的)
License.SetLicenseKey("你的许可证密钥")

# 配置二维码参数
settings = BarcodeSettings()
settings.Type = BarCodeType.QRCode
settings.Data2D = "https://your-website.com"
settings.X = 3  # 控制二维码的精细度
settings.ShowText = False  # 不显示底部文字

# 生成并保存
generator = BarCodeGenerator(settings)
image = generator.GenerateImage()
save_image("output/MyFirstQR.png", image)

运行这段代码,你就能在 output 文件夹里找到生成的二维码图片了。

让二维码更“耐造”:说说纠错等级

二维码有个很实用的特性——即使部分区域被遮挡或污损,仍然可以被识别。这得益于它的纠错机制。Spire.Barcode 提供了四个等级:

等级恢复能力适合场景
L7%短网址、纯数字
M15%日常使用(推荐)
Q25%需要加logo的情况
H30%关键信息、恶劣环境

如果你打算在二维码中间加logo,至少要选Q级或H级,不然中间那块空白可能会影响识别。

设置方法很简单:

settings.QRCodeECL = QRCodeECL.H  # 最高纠错等级

数据编码模式:别让中文变成乱码

二维码支持多种数据编码方式。虽然通常用"自动模式"就能搞定,但了解一下不同模式的区别还是有必要的:

  • Auto(自动) :让库自己判断,省心省力,日常首选
  • Numeric(纯数字) :只编码0-9,效率最高,适合电话号码、产品码
  • AlphaNumber(字母数字) :支持大写字母、数字和少量符号,适合英文短文本
  • Byte(字节) :支持中文、Emoji等,适合复杂内容
settings.QRCodeDataMode = QRCodeDataMode.Auto  # 默认选这个就行

外观定制:让二维码有你的品牌感

黑白配色的二维码虽然经典,但换个颜色能让它更融入你的设计。下面是一些常用的自定义选项:

# 改颜色
settings.BackColor = Color.get_White()
settings.ForeColor = Color.get_DeepSkyBlue()  # 亮蓝色二维码

# 加边框
settings.HasBorder = True
settings.BorderWidth = 1
settings.BorderColor = Color.get_Gray()

# 调整边距(单位:模块宽度)
settings.LeftMargin = 2
settings.RightMargin = 2
settings.TopMargin = 2
settings.BottomMargin = 2

# 设置打印分辨率(DPI越高越清晰)
settings.DpiX = 300
settings.DpiY = 300

小提醒:前景色和背景色要有足够的对比度,否则扫码设备可能识别困难。深色前景+浅色背景是最稳妥的搭配。

在二维码下方加文字说明

有时候,我们希望在二维码下面直接显示包含的信息,或者加一句提示语。这样别人即使不扫码,也能知道这个二维码是干什么的。

# 显示编码的内容
settings.ShowTextOnBottom = True
settings.TextColor = Color.get_Blue()
settings.SetTextFont("微软雅黑", 12, FontStyle.Bold)

# 或者添加自定义文字
settings.ShowBottomText = True
settings.BottomText = "扫码关注我们"
settings.SetBottomTextFont("微软雅黑", 11, FontStyle.Regular)
settings.BottomTextColor = Color.get_DarkGray()

加Logo:品牌展示的关键一步

很多公众号和品牌的二维码中间都会有一个小logo,这其实也是可以轻松实现的:

settings.SetQRCodeLogoImage("/path/to/your/logo.png")

就这么一行代码。Spire.Barcode 会自动处理logo的大小和位置,把它放在二维码的正中央。

有几个小建议:

  • 用简单、轮廓清晰的logo,太复杂的图案会影响识别
  • logo颜色和二维码前景色最好有明显区分
  • 加完logo后用手机扫一下,确保没问题

完整示例:一张漂亮的带Logo二维码

把上面讲的内容串起来,一个相对完整的例子大概长这样

from spire.barcode import *

def save_image(filename, data):
    with open(filename, "wb") as f:
        f.write(data)

License.SetLicenseKey("你的许可证密钥")

settings = BarcodeSettings()
settings.Type = BarCodeType.QRCode
settings.Data2D = "https://your-site.com/special-offer"
settings.QRCodeDataMode = QRCodeDataMode.Auto
settings.QRCodeECL = QRCodeECL.Q  # 加logo需要提高纠错等级
settings.X = 4

# 外观美化
settings.BackColor = Color.get_White()
settings.ForeColor = Color.get_DarkOrange()
settings.HasBorder = True
settings.BorderWidth = 0.5

# 底部加说明
settings.ShowBottomText = True
settings.BottomText = "扫码领取优惠券"
settings.SetBottomTextFont("微软雅黑", 12, FontStyle.Bold)

# 加logo
settings.SetQRCodeLogoImage("logo.png")

# 生成
generator = BarCodeGenerator(settings)
image = generator.GenerateImage()
save_image("output/PromoQR.png", image)

写在最后

二维码这个东西,看着简单,但真要做出效果来,还是有一些细节需要注意的。

回顾一下几个要点:

  • 纠错等级 :加logo的话至少选Q级
  • 颜色对比 :前景色要深、背景色要浅
  • 分辨率 :打印用途至少300DPI,屏幕显示72-150就够了
  • 测试 :做完后用手机扫一下,确认没问题再投入使用

Spire.Barcode 处理了大部分底层逻辑,我们只需要关注自己想要的样式和内容。无论是做活动物料、产品包装,还是内部系统开发,这套方案应该都能满足需求。

到此这篇关于使用Python打造专属二维码的详细教程的文章就介绍到这了,更多相关Python二维码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 从零教你如何使用Python实现GIF压缩效果

    从零教你如何使用Python实现GIF压缩效果

    如果你经常在网上收集各种有趣的GIF动图,但发现它们占用了太多空间,所以本文小编就来和大家详细介绍一下如何使用Python实现GIF压缩效果吧
    2025-07-07
  • Python模块、包(Package)概念与用法分析

    Python模块、包(Package)概念与用法分析

    这篇文章主要介绍了Python模块、包(Package)概念与用法,结合实例形式分析了Python中模块、包(Package)概念、功能、相关使用技巧与注意事项,需要的朋友可以参考下
    2019-05-05
  • python assert断言的实例用法

    python assert断言的实例用法

    在本篇文章里小编给大家整理了一篇关于python assert断言的实例用法,有需要的朋友们可以跟着学习参考下。
    2021-09-09
  • python随机生成指定长度密码的方法

    python随机生成指定长度密码的方法

    这篇文章主要介绍了python随机生成指定长度密码的方法,涉及Python操作字符串的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • Python数据结构dict常用操作代码实例

    Python数据结构dict常用操作代码实例

    这篇文章主要介绍了Python数据结构dict常用操作代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Python判断字符串是否包含特定子串的7种方法

    Python判断字符串是否包含特定子串的7种方法

    我们经常会遇这样一个需求,判断字符串中是否包含某个关键词,也就是特定的子字符串,本文主要给大家分享了 7 种可以达到此效果的方法,大家可以根据需要进行选择
    2025-12-12
  • 代码实例讲解python3的编码问题

    代码实例讲解python3的编码问题

    在本篇内容里小编给各位分享了关于python3的编码问题以及相关实例代码,有需要的朋友们参考一下。
    2019-07-07
  • 详解Python如何根据给定模型计算权值

    详解Python如何根据给定模型计算权值

    这篇文章将通过一个简单的例子,为大家展示Python如何根据给定的模型结构来计算和提取权值,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-11-11
  • python如何实现常用的五种排序算法详解

    python如何实现常用的五种排序算法详解

    排序有很多种实现方法,比如冒泡排序、选择排序、归并排序、希尔排序、快速排序、插入排序、堆排序、基数排序等,这篇文章主要给大家介绍了关于python如何实现常用的五种排序算法,需要的朋友可以参考下
    2021-08-08
  • Python生成多周期交替序列的数学原理与实现方法详解

    Python生成多周期交替序列的数学原理与实现方法详解

    时序数据生成是数据科学、信号处理和机器学习中的重要课题,本文将详细介绍如何使用Python生成一个值域为1-127的离散多周期交替序列,并深入探讨其背后的数学原理和实际应用
    2025-12-12

最新评论