使用Zint库生成一维码/条形码

下面代码是是使用 Zint 库生成 Code 128 类型的条形码,并将生成的条形码保存为 output.bmp 文件。下面是对代码的详细解释:

  1. #include 和 #include <zint.h>:这两行代码包含了所需的头文件,分别是标准输入输出流的头文件和 Zint 库的头文件。

  2. *struct zint_symbol my_symbol;:声明一个指向 zint_symbol 结构体的指针 my_symbol,用于存储条形码的信息。

  3. my_symbol = ZBarcode_Create();:调用 ZBarcode_Create() 函数来创建一个条形码符号对象,并将其地址赋给 my_symbol 指针。

  4. my_symbol->symbology = BARCODE_CODE128;:设置条形码的类型为 Code 128。

  5. strcpy(my_symbol->outfile, “output.bmp”);:使用 strcpy 函数将输出文件名设置为 “output.bmp”,这里假设生成的条形码图像将保存为 output.bmp 文件。

  6. std::string encode_data = “88888888”;:定义一个字符串变量 encode_data,存储要编码的数据,这里是 “88888888”。

  7. ZBarcode_Encode(my_symbol, (unsigned char)encode_data.c_str(), 0);*:调用 ZBarcode_Encode 函数将编码数据添加到条形码对象中。

  8. int error_num = ZBarcode_Print(my_symbol, 0);:调用 ZBarcode_Print 函数来生成条形码图像。如果生成过程中出现错误,将返回一个非零的错误码,否则返回 0。

  9. if (error_num != 0) { printf(“%s\n”, my_symbol->errtxt); }:如果生成条形码时出现错误,打印出错信息。

  10. ZBarcode_Delete(my_symbol);:释放 my_symbol 指针指向的内存,清理资源。

#include <iostream>
#include <zint.h>int main() {struct zint_symbol *my_symbol;my_symbol = ZBarcode_Create();my_symbol->symbology = BARCODE_CODE128;strcpy(my_symbol->outfile, "output.bmp"); // 使用strcpy函数进行字符串复制std::string encode_data = "88888888"; // 添加缺失的分号ZBarcode_Encode(my_symbol, (unsigned char*)encode_data.c_str(), 0);int error_num = ZBarcode_Print(my_symbol, 0);if (error_num != 0) {/* some error occurred */printf("%s\n", my_symbol->errtxt);}ZBarcode_Delete(my_symbol);return 0;
}

在这里插入图片描述
zint库链接


推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家:
零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核)
https://xxetb.xet.tech/s/3Zqhgt

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode---【链表的操作】

目录 206反转链表【链表结构基础】21合并两个有序链表【递归】我的答案【错误】自己修改【超出时间限制】在官方那里学到的【然后自己复写,错误】对照官方【自己修改】 160相交链表【未理解题目目的】在b站up那里学到的【然后自己复写,错误】【超出时间限制】对照官方【自己修改…

(C语言)qsort函数模拟实现

前言 我们需先了解qsort函数 qsort函数详解&#xff1a;http://t.csdnimg.cn/rTNv9 qsort函数可以排序多种数据类型&#xff0c;很是神奇&#xff0c;这是为什么&#xff0c;我们在里模拟实现这样的功能 目录 1. qsort函数模拟实现 2. 我们使用bubble_sort函数排序整形数…

Sunshine v0.21.0 安装卡住,闪退的问题解决

上期博客讲了如何利用 Sunshine 和 Moonlight 实现 iPad 当作 Windows 副屏&#xff0c;用官方 Windows installer 安装 Sunshine 过程中&#xff0c;遇到了安装卡住&#xff08;这个是因为需要国外网络环境&#xff09;&#xff0c;安装后运行闪退的问题。 Sunshine 下载地址…

OpenCV 4基础篇| OpenCV图像的裁切

目录 1. Numpy切片1.1 注意事项1.2 代码示例 2. cv2.selectROI()2.1 语法结构2.2 注意事项2.3 代码示例 3. Pillow.crop3.1 语法结构3.2 注意事项3.3 代码示例 4. 扩展示例&#xff1a;单张大图裁切成多张小图5. 总结 1. Numpy切片 语法结构&#xff1a; retval img[y:yh, x…

以目标检测和分类任务为例理解One-Hot Code

在目标检测和分类任务中&#xff0c;每一个类别都需要一个编码来表示&#xff0c;同时&#xff0c;这个编码会用来计算网络的loss。比如有猫&#xff0c;狗&#xff0c;猪三种动物&#xff0c;这三种动物相互独立&#xff0c;在分类中&#xff0c;将其中任意一种分类为其他都同…

YOLOv9独家原创改进|使用可改变核卷积AKConv改进RepNCSPELAN4

专栏介绍&#xff1a;YOLOv9改进系列 | 包含深度学习最新创新&#xff0c;主力高效涨点&#xff01;&#xff01;&#xff01; 一、改进点介绍 AKConv是一种具有任意数量的参数和任意采样形状的可变卷积核&#xff0c;对不规则特征有更好的提取效果。 RepNCSPELAN4是YOLOv9中的…

2023年12月CCF-GESP编程能力等级认证Scratch图形化编程四级真题解析

一、单选题(共15题,共30分) 第1题 现代计算机是指电子计算机,它所基于的是( )体系结构。 A:艾伦图灵 B:冯诺依曼 C:阿塔纳索夫 D:埃克特-莫克利 答案:B 第2题 默认小猫角色,执行下列程序,以下说法正确的是? ( ) A:舞台上会出现无数个小猫 B:舞台只会出现…

java spring 02. AbstractApplicationContext

spring创建对象的顺序&#xff0c;先创建beanfactory&#xff0c;再会把xml文件读取到spring。 public ClassPathXmlApplicationContext(String[] configLocations, boolean refresh, Nullable ApplicationContext parent)throws BeansException {//调用父类的构造方法super(p…

Redis常用指令,jedis与持久化

1.redis常用指令 第一个是key的常用指令&#xff0c;第二个是数据库的常用指令 前面的那些指令都是针对某一个数据类型操作的&#xff0c;现在的都是对所有的操作的 1.key常用指令 key应该设计哪些操作 key是一个字符串&#xff0c;通过key获取redis中保存的数据 对于key…

flink重温笔记(九):Flink 高级 API 开发——flink 四大基石之WaterMark(Time为核心)

Flink学习笔记 前言&#xff1a;今天是学习 flink 的第 9 天啦&#xff01;学习了 flink 四大基石之 Time的应用—> Watermark&#xff08;水印&#xff0c;也称水位线&#xff09;&#xff0c;主要是解决数据由于网络延迟问题&#xff0c;出现数据乱序或者迟到数据现象&…

通过大语言模型理解运维故障:评估和总结

张圣林 南开大学软件学院副教授、博士生导师 第六届CCF国际AIOps挑战赛程序委员会主席 在ATC、WWW、VLDB、KDD、SIGMETRICS等国际会议和JSAC、TC、TSC等国际期刊发表高水平论文50余篇。主持国家自然科学基金项目2项&#xff0c;横向项目13项&#xff08;与华为、字节跳动、腾讯…

Sqli-labs靶场第20关详解[Sqli-labs-less-20]自动化注入-SQLmap工具注入

Sqli-labs-Less-20 通过测试发现&#xff0c;在登录界面没有注入点&#xff0c;通过已知账号密码admin&#xff0c;admin进行登录发现&#xff1a; 登录后会有记录 Cookie 值 设想如果在Cookie尝试加上注入语句&#xff08;报错注入&#xff09;&#xff0c;测试是否会执行…

C++STL之vector

vector 1. vector介绍 vector文档vector其实就是一个顺序表&#xff0c;它表示可变大小数组的序列容器。像数组一样&#xff0c;可以使用下标[] 来访问vector的元素&#xff0c;和数组一样高效&#xff1b;甚至&#xff0c;它的大小是可以动态改变的&#xff0c;其大小由容器自…

软考55-上午题-【数据库】-数据库设计步骤1

一、数据库设计的步骤 新奥尔良法&#xff0c;四个主要阶段&#xff1a; 1、用户需求分析&#xff1a;手机用户需求&#xff0c;确定系统边界&#xff1b; 2、概念设计&#xff08;概念结构设计&#xff09;&#xff1a;是抽象概念模型&#xff0c;较理想的是采用E-R方法。 …

代码随想录算法训练营第七天

● 自己看到题目的第一想法 第454题.四数相加II 方法&#xff1a; 方法一&#xff1a; 暴力法 思路&#xff1a; 注意&#xff1a; 代码&#xff1a; class Solution { public:int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<i…

QT 网络编程 8

1 基础知识 udp tcp 2 UDP 框架 客户端: QUdpSocket x; qint64 writeDatagram( const char *data, qint64 size, const QHostAddress &address, quint16 port );服务器: void Server::initSocket(){udpSocket new QUdpSocket(this);udpSocket->bind(QHostAddress…

macos jupyter notebook字体的修改

终端codemirror 记事本打开 搜索font-family 修改font-size保存即可

重学SpringBoot3-@ConditionalOnXxx条件注解

重学SpringBoot3-ConditionalOnXxx条件注解 引言常见的条件注解常见的条件注解示例扩展条件注解1. ConditionalOnJndi2. ConditionalOnJava3. ConditionalOnCloudPlatform4. ConditionalOnEnabledResourceChain5. 自定义条件注解 总结 引言 Spring Boot 提供了一组强大的条件注…

ERDAS监督分类与温度反演教程

本期带来监督分类教程&#xff0c;更多内容&#xff0c;欢迎关注小编的公众号梧桐凉月哦&#xff01;&#xff01;&#xff01; 一、研究区自然、地理环境特征&#xff1a; 1、景德镇市位于中国江西省东北部&#xff0c;地处赣江中游的赣北盆地&#xff0c;地形地貌以丘陵和低…

mitmproxy代理

文章目录 mitmproxy1. 网络代理2. 安装3. Https请求3.1 启动mitmproxy3.2 获取证书3.3 配置代理3.4 运行测试 4. 请求4.1 读取请求4.2 修改请求4.3 拦截请求 5. 响应5.1 读取响应5.2 修改响应 6. 案例&#xff1a;共享账号6.1 登录bilibili获取cookies6.2 在代理请求中设置cook…