【HarmonyOS NEXT 】鸿蒙generateBarcode (码图生成)
本模块支持将字符串转换为二维码或条形码,目前已支持的码制式为EAN-8、EAN-13、UPC-A、UPC-E、Codabar、Code 39、Code 93、Code 128、ITF-14、QR Code、Data Matrix、PDF417、Aztec。暂时不支持多功能码生成。
起始版本:4.1.0(11)
导入模块
import { generateBarcode } from '@kit.ScanKit';
ErrorCorrectionLevel
纠错率枚举。
系统能力:SystemCapability.Multimedia.Scan.GenerateBarcode
起始版本:4.1.0(11)
| 名称 | 值 | 说明 |
|---|---|---|
| LEVEL_L | 0 | 7%纠错率。 |
| LEVEL_M | 1 | 15%纠错率。 |
| LEVEL_Q | 2 | 25%纠错率。 |
| LEVEL_H | 3 | 30%纠错率。 |
generateBarcode.createBarcode
createBarcode(content: string, options: CreateOptions): Promise<image.PixelMap>
码图生成,使用Promise异步回调返回生成的码图。
系统能力:SystemCapability.Multimedia.Scan.GenerateBarcode
起始版本:4.1.0(11)
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| content | string | 是 | 码内容字符串,参数限制请参见content参数限制条件。 |
| options | CreateOptions | 是 | 用于设置生成码图的参数。 |
返回值:
| 类型 | 说明 |
|---|---|
| Promise<image.PixelMap> | Promise对象,返回生成的码图对象。 |
错误码:
以下错误码的详细介绍请参见ArkTS API错误码。
| 错误码ID | 错误信息 |
|---|---|
| 401 | Parameter error. |
| 1000500001 | Internal error. |
示例:
import { image } from '@kit.ImageKit';
import { scanCore, generateBarcode } from '@kit.ScanKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';// 以QR码为例,码图生成参数
let content: string = 'Huawei@HMSCore';
let options: generateBarcode.CreateOptions = {scanType: scanCore.ScanType.QR_CODE,height: 200,width: 200
}
// 码图生成接口,成功返回PixelMap格式图片
generateBarcode.createBarcode(content, options).then((result: image.PixelMap) => {hilog.info(0x0001, '[Scan Sample]', `Succeeded in getting PixelMap by promise with options, result is ${JSON.stringify(result)}`);
}).catch((error: BusinessError) => {hilog.error((0x0001, '[Scan Sample]', `Failed to get PixelMap by promise with options. Code: ${error.code}, message: ${error.message}`);
})
content参数限制条件:
| 生成码类型 | 参数建议内容 |
|---|---|
| QR Code | 支持中文,建议不超过512字符长度,如果内容过长会导致码复杂,影响识别。 |
| Aztec | 支持中文,建议不超过512字符长度,如果内容过长会导致码复杂,影响识别。 |
| PDF417 | 支持中文,建议不超过512字符长度,如果内容过长会导致码复杂,影响识别。 |
| Data Matrix | 建议不超过512字符长度,如果内容过长会导致码复杂,影响识别。 |
| UPC-A | 支持11位数字输入,只支持数字,生成包含12位数字的码图,包含最后一位校验数字。 |
| UPC-E | 支持7位数字输入,只支持数字,首位需要是0或1,生成包含8位数字的码图,包含最后一位校验数字。 |
| ITF-14 | 支持80位以内数字输入,并且需要是偶数位,只支持数字,生成包含偶数位数字的码图,如果内容过长会导致码复杂,影响识别。 |
| EAN-8 | 支持7位数字输入,只支持数字,生成包含8位数字的码图,包含最后一位校验数字。 |
| EAN-13 | 支持12位数字输入,只支持数字,首位不可以是0,生成包含13位数字的码图,包含最后一位校验数字 |
| Code 39 | 建议不超过80字节长度,字符集可以是数字、大小写字母和- . $ / + % * SPACE英文格式符号(请注意:一个小写字母占用2个字节)。 |
| Code 93 | 建议不超过80字节长度,字符集可以是数字、大小写字母和- . $ / + % * SPACE英文格式符号(请注意:一个小写字母占用2个字节)。 |
| Code 128 | 建议不超过80字节长度,字符集可以是数字、大小写字母和- . $ / + % * SPACE英文格式符号(请注意:一个小写字母占用1个字节)。 |
| Codabar | 建议不超过512字符长度,起始/终止符可以是ABCD中的任一个(特殊情况下,TN*E也会编码成ABCD,推荐使用ABCD)。其他字符可以是数字和- . $ / : +英文格式符号。 |
generateBarcode.createBarcode
createBarcode(content: string, options: CreateOptions, callback: AsyncCallback<image.PixelMap>): void
码图生成,使用Callback异步回调返回生成的码图。
系统能力:SystemCapability.Multimedia.Scan.GenerateBarcode
起始版本:4.1.0(11)
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| content | string | 是 | 码内容字符串。参数限制请参见content参数限制条件。 |
| options | CreateOptions | 是 | 用于设置生成码图的参数。 |
| callback | AsyncCallback<image.PixelMap> | 是 | 回调函数。当码图生成成功,err为undefined,data为生成的码图对象image.PixelMap;否则为错误对象。 |
错误码:
以下错误码的详细介绍请参见ArkTS API错误码。
| 错误码ID | 错误信息 |
|---|---|
| 401 | Parameter error. |
| 1000500001 | Internal error. |
示例:
import { image } from '@kit.ImageKit';
import { scanCore, generateBarcode } from '@kit.ScanKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';// 以QR码为例,码图生成参数
let content: string = 'Huawei@HMSCore';
let options: generateBarcode.CreateOptions = {scanType: scanCore.ScanType.QR_CODE,height: 200,width: 200
}
// 码图生成接口,成功返回PixelMap格式图片
generateBarcode.createBarcode(content, options, (error: BusinessError, result: image.PixelMap) => {if (error) {hilog.error(0x0001, '[Scan Sample]', `Failed to get PixelMap by callback with options. Code: ${error.code}, message: ${error.message}`);return;}hilog.info(0x0001, '[Scan Sample]', `Succeeded in getting PixelMap by callback with options, result is ${JSON.stringify(result)}`);
})
CreateOptions
生成码参数。
系统能力:SystemCapability.Multimedia.Scan.GenerateBarcode
起始版本:4.1.0(11)
| 名称 | 类型 | 只读 | 可选 | 说明 |
|---|---|---|---|---|
| scanType | scanCore.ScanType | 否 | 否 | 码类型。 |
| width | number | 否 | 否 | 码图宽,单位:px。取值范围:[200, 4096]。 |
| height | number | 否 | 否 | 码图高,单位:px。取值范围:[200, 4096]。 |
| margin | number | 否 | 是 | 边距,单位:px,默认值为1,取值范围:[1, 10]。 |
| level | ErrorCorrectionLevel | 否 | 是 | 纠错水平,默认值为LEVEL_H。 注意 此参数只在生成QR码时有效。 |
| backgroundColor | number | 否 | 是 | 生成码图背景颜色,HEX格式颜色,默认为白色(0xffffff)。 |
| pixelMapColor | number | 否 | 是 | 生成码图颜色,HEX格式颜色,默认为黑色(0x000000)。 |
说明
生成码参数建议:
- 码图颜色和背景
建议使用默认颜色和背景:黑色码图、白色背景。如果码图颜色和背景对比度较小会影响识别率。
- 码图边距
建议使用默认边距1,单位:px,取值范围:[1, 10]。
- 码图大小
- 生成QR Code、Data Matrix、Aztec类型的码图时,建议输入的width和height值相同且均大于200,否则生成的码图过小会影响识别。
- 生成EAN-8、EAN-13、UPC-A、UPC-E、Codabar、Code 39、Code 93、Code 128、ITF-14、PDF417类型的码图时,建议输入的width和height值比例为2:1,并且width值需大于400,否则生成的码图会过小影响识别。
示例:
// 以QR码为例
let options: generateBarcode.CreateOptions = {scanType: scanCore.ScanType.QR_CODE,height: 200,width: 200,backgroundColor: 0xFFFFFF,pixelMapColor: 0x000000,margin: 1,level: generateBarcode.ErrorCorrectionLevel.LEVEL_H
}
内容来源 HarmonyOS NEXT API12 官方文档
相关文章:
【HarmonyOS NEXT 】鸿蒙generateBarcode (码图生成)
本模块支持将字符串转换为二维码或条形码,目前已支持的码制式为EAN-8、EAN-13、UPC-A、UPC-E、Codabar、Code 39、Code 93、Code 128、ITF-14、QR Code、Data Matrix、PDF417、Aztec。暂时不支持多功能码生成。 起始版本:4.1.0(11) 导入模块 import {…...
python测试工程师 之 unittest框架总结
unittest 学习目标unittest 框架的基本使⽤⽅法(组成)断⾔的使⽤ (让程序⾃动的判断预期结果和实际结果是否相符)参数化(多个测试数据, 测试代码写⼀份 传参)⽣成测试报告 复习pythonunittest 框架的介绍核⼼要素(组成)1. TestCase 测试⽤例, 这个测试⽤例是 unittest 的组成部…...
微服务中的相关概念
Eureka Eureka 是由 Netflix 开发的一个服务发现和注册中心,广泛应用于微服务架构中。Eureka 主要用于管理和协调分布式服务的注册和发现,确保各个服务之间能够方便地找到并通信。它是 Netflix OSS(Netflix Open Source Software)…...
常见的设计模式
设计模式是一套被反复使用的、代码设计经验的总结。它们被用来解决软件开发中的某些常见问题,提高代码的可维护性、可扩展性和重用性。设计模式主要分为三大类:创建型模式、结构型模式和行为型模式。以下是一些常见的设计模式及其简要说明: …...
Camtasia2024中文版最新电脑录屏剪辑神器!
大家好,今天我要安利一个我最近超级喜欢的工具——Camtasia2024中文版!这款软件真的太棒了,它让我的视频编辑工作变得更加轻松和高效。如果你也对视频制作感兴趣,那么一定要尝试一下这款神器哦! Camtasia2024win-正式…...
【性能优化】表分区实践最佳案例
背景 随着数字化建设的持续深入,企业的业务规模迎来了高速发展,其数据规模也呈现爆炸式增长,如果继续使用传统解决方案,将所有数据存储在一个表中,对数据的查询和维护效率将是一个巨大的挑战,在这个背景下…...
力扣SQL50 项目员工 I ROUND AVG
Problem: 1075. 项目员工 I 👨🏫 参考题解 Code select project_id,ROUND(AVG(e.experience_years),2) as average_years FROMproject as p LEFT JOINemployee as e ONp.employee_id e.employee_id GROUP BYp.project_id;...
nuscenes 数据集学习笔记
目录 数据信息类型: 数据信息类型: Map & Camera(png), Lidar(激光雷达) & Radar(雷达)(pcd), Json 文件结构(以v1.0-mini为例): maps: 存放Map的png文件samples: 存放Camera, Lidar, Radar关键非结构化数据信息, 带标注sweeps: 存放Camera, Lidar, Radar 次要非结构…...
在Windows上用MinGW编译OpenCV项目运行全流程
一、准备软件 OpenCV源码CMake工具MinGW工具链(需要选用 posix 线程版本:原因见此) 二、操作步骤 官网提供了VC16构建版本的二进制包,但是没有给出GCC编译的版本。所以如果使用MinGW进行构建,那就只能从源码开始构建…...
用Vite基于Vue3+ts+DataV+ECharts开发数据可视化大屏,即能快速开发又能保证屏幕适配
数据可视化大屏 基于 Vue3、Typescript、DataV、ECharts5 框架的大数据可视化(大屏展示)开发。此项目vue3实现界面,采用新版动态屏幕适配方案,全局渲染组件封装,支持数据动态刷新渲染、内部DataV、ECharts图表都支持自…...
大二学生眼中的Netty?基于Netty实现内网穿透!
爷的开场白 掘金的朋友们大家好!我是新来的Java练习生 CodeCodeBond! 这段时间呢,博主在学习Netty,想做一个自己感兴趣好玩的东西,那就是内网穿透!!(已经实现主要代理功能但有待优化…...
JavaStringBuffer与StringBuilder
StringBuffer、StringBuilder 文章目录 StringBuffer、StringBuilderStringBuffer和StringBuilder的理解可变性分析对于String对于StringBuilder 常用方法执行效率对比 StringBuffer和StringBuilder的理解 String 不可变的字符序列 StringBuffer 可变的字符序列 JDK1.0声明&…...
云徙科技助力竹叶青实现用户精细化运营,拉动全渠道销售额增长
竹叶青茶以其别具一格的风味与深厚的历史底蕴,一直被誉为茶中瑰宝。历经千年的传承与创新,竹叶青不仅坚守着茶叶品质的极致追求,更在数字化的浪潮中,率先打破传统,以科技力量赋能品牌,成为茶行业的领军者。…...
深度揭秘:深度学习框架下的神经网络架构进化
深度学习框架下的神经网络架构经历了从基础到复杂的显著进化,这一进程不仅推动了人工智能领域的突破性进展,还极大地影响了诸多行业应用。本文旨在深入浅出地揭示这一进化历程,探讨关键架构的创新点及其对现实世界的影响。 引言:…...
MySQL的DML语句
文章目录 ☃️概述☃️DML☃️添加数据☃️更新和删除数据☃️DML的重要性 ☃️概述 MySQL 通用语法分类 ● DDL: 数据定义语言,用来 定义数据库对象(数据库、表、字段) ● DML: 数据操作语言,用来对数据库表中的数据进行增删改 …...
Wireshark的基本用法以及注意事项
Wireshark 是一个流行的网络协议分析工具,可以捕获和分析网络数据包。以下是一些常见的 Wireshark 的用法: 安装和启动:首先需要下载和安装 Wireshark。安装完成后,可以通过启动 Wireshark 应用程序来打开它。 选择网络接口&…...
集团门户网站的设计
管理员账户功能包括:系统首页,个人中心,管理员管理,论坛管理,集团文化管理,基础数据管理,公告通知管理 前台账户功能包括:系统首页,个人中心,论坛࿰…...
Tomcat基础详解
第一篇:Tomcat基础篇 lecture:邓澎波 一、构建Tomcat源码环境 工欲善其事必先利其器,为了学好Tomcat源码,我们需要先在本地构建一个Tomcat的运行环境。 1.源码环境下载 源码有两种下载方式: 1.1 官网下载 https://…...
【Python爬虫】爬取名人名言页面并进行简单的数据清洗(入门级)
目录 资源链接 一、网站选择 二、数据爬取要求 三、数据清洗要求 四、实现代码 1.数据采集 2.数据清洗 资源链接 下面有笔者所放的源码下载链接,读者可自行下载: 链接:https://pan.baidu.com/s/1YmTdlnbSJLvLrrx92zz6Qg 提取码&…...
Microsoft Visual C++ Redistributable 【安装包】【高速下载】
方法1、可以从官方下载,如下图 Visual C Redistributable for Visual Studio 2015 但是此链接只有一个版本 方法2 已经下载好并且已经整理好了2008--2022的所有版本点击下方链接即可高速下载 如果是win7-win8-win10-win11直接可以下载2015--2022版本,…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
mac 安装homebrew (nvm 及git)
mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...
