Python 轻松生成多种条形码、二维码 (Code 128、EAN-13、QR code等)

条形码和二维码是现代信息交换和数据存储的重要工具,它们将信息以图形的形式编码,便于机器识别和数据处理,被广泛应用于物流、零售、医疗、教育等各领域。

本文将介绍如何使用Python快速生成各种常见的条形码如Code 128、EAN-13,以及生成二维码

文章目录

      • Python条码库
      • 生成条码的类、方法简介
      • Python 生成 Code128码
      • Python 生成 EAN-13码
      • Python 生成二维码QR Code

Python条码库

本文需要用到 Spire.Barcode for Python 库,该库支持生成、识别各类一维和二维条码,包括 EAN, UPC, Code128, Code39, QR Code, Data Matrix 等,满足各种应用需求。此外还提供了丰富的接口来自定义条码图片的边框样式、颜色、边距等属性。
该Python条码生成库可以通过 pip轻松安装:

pip install Spire.Barcode

生成条码的类、方法简介

要使用Spire.Barcode for Python库生成条码,主要会用到以下类、属性、方法:

  1. BarcodeSettings 类:用于条码生成的各项设置。支持设置条码类型、数据、背景色、宽高度、边距、分辨率等。
  2. BarcodeSettings.Type 属性:设置条码类型。
  3. BarcodeSettings.Data 属性:设置条码数据。
  4. BarcodeSettings.Data2D 属性:设置二维码文本。
  5. BarcodeGenerator 类:用于条码渲染。
  6. BarcodeGenerator.GenerateImage() 方法:用于生成条码图片。

以下为生成条码的Python代码示例

Python 生成 Code128码

from spire.barcode import *def WriteAllBytes(fname: str, data):with open(fname, "wb") as fp:fp.write(data)fp.close()# 创建BarcodeSettings对象
barcodeSettings = BarcodeSettings()# 将条码类型设置为Code128
barcodeSettings.Type = BarCodeType.Code128# 设置条码数据
barcodeSettings.Data = "XD00555"# 设置Code128条形码的代码集
barcodeSettings.Code128SetMode = Code128SetMode.Auto# 创建BarCodeGenerator对象
barCodeGenerator = BarCodeGenerator(barcodeSettings)# 生成条码图片
barcodeimage = barCodeGenerator.GenerateImage()
WriteAllBytes("Code128.png", barcodeimage)

条码图:
Code128 码

Python 生成 EAN-13码

from spire.barcode import *def WriteAllBytes(fname: str, data):with open(fname, "wb") as fp:fp.write(data)fp.close()# 创建BarcodeSettings对象
barcodeSettings = BarcodeSettings()# 将条码类型设置为EAN13
barcodeSettings.Type = BarCodeType.EAN13# 设置条码数据
barcodeSettings.Data = "5019632805254"# 创建BarCodeGenerator对象
barCodeGenerator = BarCodeGenerator(barcodeSettings)# 生成条码图片
barcodeimage = barCodeGenerator.GenerateImage()
WriteAllBytes("EAN13.png", barcodeimage)

条码图:
EAN13码

Python 生成二维码QR Code

from spire.barcode import *def WriteAllBytes(fname:str,data):fp = open(fname,"wb")fp.write(data)fp.close()# 创建BarcodeSettings对象
barcodeSettings = BarcodeSettings()# 将条码类型设置为QR Code
barcodeSettings.Type = BarCodeType.QRCode# 设置背景颜色
barcodeSettings.BackColor = Color.get_WhiteSmoke()# 设置QR Code的编码模式
barcodeSettings.QRCodeDataMode = QRCodeDataMode.Byte# 设置纠错等级(ECL)
barcodeSettings.QRCodeECL = QRCodeECL.M# 设置是否在二维码底部显示文本
barcodeSettings.ShowTextOnBottom = True# 设置分辨率
barcodeSettings.DpiX = 500
barcodeSettings.DpiY = 500# 设置二维码数据
barcodeSettings.Data2D = "Hello, World"# 创建BarCodeGenerator对象
barCodeGenerator = BarCodeGenerator(barcodeSettings)# 生成二维码图片
barcodeimage = barCodeGenerator.GenerateImage()
WriteAllBytes("QRCode.png", barcodeimage)

条码图:
在这里插入图片描述


– 测试过程中遇到的问题可前往论坛交流。

– 对于所生成条码上的水印,可以由此申请1个月试用授权来移除:https://www.e-iceblue.cn/misc/temporary-license.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3226769.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

3DMAX卡死也要安装的10大插件

在探索3DMAX的无限创意边界时,有些插件如同星辰般璀璨,即便面对插件偶尔的“倔强”卡顿,设计师们依然对其爱不释手,誓要将其纳入麾下。以下便是那份令人心动的“卡死也要安装”的10大插件清单,每个都蕴含着设计师对美的…

【GIS开发小课堂】WebGIS开发必学开源框架Openlayers,附赠视频教程、电子书、笔记源码

WebGIS开发之Openlayers 当前,WebGIS开发热门程度越来越高,市场招聘供需比处于较为紧张的状态。 常见的WebGIS开源框架有:OpenLayers、Leaflet、MapBox、MapFish、GeoServer、GeoEXT、MapInfo等。公司最希望求职者具备至少一种框架开发技能…

什么样的开放式耳机好用?,五大超强卷王单品推荐!

对于热衷尝试不同耳机类型的小伙伴们而言,经过对佩戴舒适度、音质清晰度及电池续航能力的全面考量,开放式蓝牙耳机因其卓越的平衡性脱颖而出,成为多数人的心头好。其轻巧设计不仅保证了长时间佩戴的舒适感,还兼顾了音质与续航的双…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第一篇 嵌入式Linux入门篇-第十九章 Linux 工具之make 工具和 makefile 文件

i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

【亲测有效】Linux/Ubuntu远程服务器使用plt.show()没有反应,vscode ssh 远程ubuntu,plt.show不显示图片问题

【亲测有效】Linux/Ubuntu远程服务器使用plt.show没有反应,vscode ssh 远程ubuntu,plt.show不显示图片问题 plt.show()在linux或者ubuntu系统中不会有显示,这是因为系统没有图形界面。解决方法:保存成png图片然后在程序运行后查看…

使用 MinIO 赢得 RAG 权利

人们常说,在人工智能时代,数据是你的护城河。为此,构建生产级 RAG 应用程序需要合适的数据基础架构来存储、版本控制、处理、评估和查询构成专有语料库的数据块。由于 MinIO 采用数据优先的 AI 方法,因此对于此类项目,…

PostMan添加path参数请求

如下图: /findInventoryByQrCode/:qrCode用 : 会出现Path Variables 栏

科普文:看懂Linux日志分析

日志文件是Linux系统中极为重要的一部分,它们记录了系统和应用程序的各种活动信息。通过日志文件,系统管理员可以监控系统的运行状态、发现潜在的问题,并进行故障排除。 一. 常见的日志文件 在介绍具体的日志分析命令之前,首先了…

Mybatis的优缺点及适用场景?

目录 一、什么是Mybatis? 二、Mybatis框架的特点 三、Mybatis框架的优点? 四、MyBatis 框架的缺点? 五、MyBatis 框架适用场合? 六、代码示例 1. 配置文件 mybatis-config.xml 2. 映射文件 UserMapper.xml 3. Java 代码…

前端面试39(关于git)

针对前端开发者的Git面试题可以覆盖Git的基础概念、常用命令、工作流程、团队协作、以及解决冲突等方面。以下是一些具体的Git面试 Git基础知识 什么是Git? Git是一个分布式版本控制系统,用于跟踪计算机文件的更改,并协调多个人共同在一个项…

c++ 多边形 xyz 数据 获取 中心点方法,线的中心点取中心值搞定 已解决

有需求需要对。多边形 获取中心点方法&#xff0c;绝大多数都是 puthon和java版本。立体几何学中的知识。 封装函数 point ##########::getCenterOfGravity(std::vector<point> polygon) {if (polygon.size() < 2)return point();auto Area [](point p0, point p1, p…

C#知识|账号管理系统:UI层-添加账号窗体设计思路及流程。

哈喽,你好啊,我是雷工! 前边练习过详情页窗体的设计思路及流程: 《C#知识|上位机UI设计-详情窗体设计思路及流程(实例)》 本节练习添加账号窗体的UI设计,以下为学习笔记。 01 效果展示 02 添加窗体 在UI层添加Windows窗体,设置名称为:FrmAddAcount.cs 设置窗体属…

检测管道有没有水的传感器-管道液位传感器

如今&#xff0c;随着生活方式的多样化和科技的进步&#xff0c;检测管道液位的需求变得愈发重要。特别是在诸如扫地机器人、洗地机、饮水机等设备中&#xff0c;确保管道中是否存在水是关键的功能之一。针对这一需求&#xff0c;市场上涌现出多种先进的管道液位传感器&#xf…

移动应用:商城购物类,是最常见的,想出彩或许就差灵犀一指

在移动应用中&#xff0c;商城购物类的非常常见&#xff0c;模式也非常成熟&#xff0c;想要设计的出彩也是有难度的&#xff0c;这次分享一些不同的。

项目收获总结--Redis的知识收获

一、概述 最近几天公司项目开发上线完成&#xff0c;做个收获总结吧~ 今天记录Redis的收获和提升。 二、Redis异步队列 Redis做异步队列一般使用 list 结构作为队列&#xff0c;rpush 生产消息&#xff0c;lpop 消费消息。当 lpop 没有消息的时候&#xff0c;要适当sleep再…

迁移至 AI-Ready 基础架构:日立内容平台至 MinIO

借助我们的 HCP-to-MinIO 工具&#xff0c;从 Hitachi Content Platform &#xff08;HCP&#xff09; 过渡到 MinIO 从未如此简单。该工具旨在支持客户不断变化的存储需求&#xff0c;可在 GitHub 上免费获得&#xff0c;大大简化了迁移过程。许多组织正在转型&#xff0c;以利…

supOS助力油气行业数智化转型

在油气行业&#xff0c;高温高压、易燃易爆的特殊环境对生产安全和效率提出了极高的要求。传统工厂管理模式往往存在信息孤岛、决策滞后、响应速度慢等问题&#xff0c;难以适应现代工业化发展的需求。 从传统工厂到智能工厂&#xff0c;首先要实现企业经营运营自动化和生产过程…

新声创新20年:无线技术给助听器插上“娱乐”的翅膀

听力损失并非现代人的专利&#xff0c;古代人也会有听力损失。助听器距今发展已经有二百多年了&#xff0c;从当初单纯的声音放大器到如今的全数字时代助听器&#xff0c;助听器发生了翻天覆地的变化&#xff0c;现代助听器除了助听功能&#xff0c;还具有看电视&#xff0c;听…

uni-app/vue项目如何封装全局消息提示组件

效果图&#xff1a; 第一步&#xff1a;封装组件和方法&#xff0c;采用插件式注册&#xff01; 在项目目录下新建components文件夹&#xff0c;里面放两个文件&#xff0c;分别是index.vue和index.js. index.vue&#xff1a; <template><div class"toast&quo…

漏洞挖掘思路分享 | 首次尝试cnvd捡洞

因为那天项目刚忙完闲来无事&#xff0c;尝试捡个cnvd洞&#xff0c;cnvd录取要五千万资产&#xff0c;自己又懒得找毕竟捡洞嘛&#xff0c;索性去cnvd上进行搜集 直接开搜弱口令&#xff0c;因为我比较喜欢有登录框的站&#xff0c;这样搜索出来的资产可能就更容易进行挖掘 随…