使用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二维码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • numpy迭代数组nditer的实现示例

    numpy迭代数组nditer的实现示例

    本文详细介绍了NumPy库中nditer对象的使用方法,包括逐个访问数组元素、控制迭代顺序、修改数组值、使用外部循环、跟踪索引、缓冲数组元素及广播数组迭代等内容,感兴趣的可以了解一下
    2026-05-05
  • python函数中return后的语句一定不会执行吗?

    python函数中return后的语句一定不会执行吗?

    这篇文章主要给大家详细分析讲解了关于python函数中return语句后的语句是否一定不会执行的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编一起来学习学习吧。
    2017-07-07
  • Python数据结构之单链表详解

    Python数据结构之单链表详解

    这篇文章主要为大家详细介绍了Python数据结构之单链表的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • Pytorch 统计模型参数量的操作 param.numel()

    Pytorch 统计模型参数量的操作 param.numel()

    这篇文章主要介绍了Pytorch 统计模型参数量的操作 param.numel(),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Python第三方模块apscheduler安装和基本使用

    Python第三方模块apscheduler安装和基本使用

    本文主要介绍了Python第三方模块apscheduler安装和基本使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Python之指数与E记法的区别详解

    Python之指数与E记法的区别详解

    今天小编就为大家分享一篇Python之指数与E记法的区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • 详解pandas获取Dataframe元素值的几种方法

    详解pandas获取Dataframe元素值的几种方法

    这篇文章主要介绍了详解pandas获取Dataframe元素值的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • 如何使用Python实现PPT批量转图片

    如何使用Python实现PPT批量转图片

    这篇文章主要为大家详细介绍了如何使用Python开发一个带有图形界面的PPT批量转图片工具,文中的示例代码讲解详细,有需要的小伙伴可以了解下
    2025-02-02
  • python循环监控远程端口的方法

    python循环监控远程端口的方法

    这篇文章主要介绍了python循环监控远程端口的方法,涉及Python实现端口监控的技巧,需要的朋友可以参考下
    2015-03-03
  • Python执行Linux命令的多种方法

    Python执行Linux命令的多种方法

    本文介绍了在Python中执行shell命令(如cd和git)的多种方法,包括使用os和subprocess模块、完整的最佳实践解决方案、高级Git操作封装、最简实现以及错误处理、路径扩展和安全性注意事项,最后,简要介绍了Flutter的开发背景和学习重点,需要的朋友可以参考下
    2025-12-12

最新评论