当前位置: 首页 > news >正文

【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]。

  • 码图大小
    1. 生成QR Code、Data Matrix、Aztec类型的码图时,建议输入的width和height值相同且均大于200,否则生成的码图过小会影响识别。
    2. 生成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 (码图生成)

本模块支持将字符串转换为二维码或条形码&#xff0c;目前已支持的码制式为EAN-8、EAN-13、UPC-A、UPC-E、Codabar、Code 39、Code 93、Code 128、ITF-14、QR Code、Data Matrix、PDF417、Aztec。暂时不支持多功能码生成。 起始版本&#xff1a;4.1.0(11) 导入模块 import {…...

python测试工程师 之 unittest框架总结

unittest 学习目标unittest 框架的基本使⽤⽅法(组成)断⾔的使⽤ (让程序⾃动的判断预期结果和实际结果是否相符)参数化(多个测试数据, 测试代码写⼀份 传参)⽣成测试报告 复习pythonunittest 框架的介绍核⼼要素(组成)1. TestCase 测试⽤例, 这个测试⽤例是 unittest 的组成部…...

微服务中的相关概念

Eureka Eureka 是由 Netflix 开发的一个服务发现和注册中心&#xff0c;广泛应用于微服务架构中。Eureka 主要用于管理和协调分布式服务的注册和发现&#xff0c;确保各个服务之间能够方便地找到并通信。它是 Netflix OSS&#xff08;Netflix Open Source Software&#xff09…...

常见的设计模式

设计模式是一套被反复使用的、代码设计经验的总结。它们被用来解决软件开发中的某些常见问题&#xff0c;提高代码的可维护性、可扩展性和重用性。设计模式主要分为三大类&#xff1a;创建型模式、结构型模式和行为型模式。以下是一些常见的设计模式及其简要说明&#xff1a; …...

Camtasia2024中文版最新电脑录屏剪辑神器!

大家好&#xff0c;今天我要安利一个我最近超级喜欢的工具——Camtasia2024中文版&#xff01;这款软件真的太棒了&#xff0c;它让我的视频编辑工作变得更加轻松和高效。如果你也对视频制作感兴趣&#xff0c;那么一定要尝试一下这款神器哦&#xff01; Camtasia2024win-正式…...

【性能优化】表分区实践最佳案例

背景 随着数字化建设的持续深入&#xff0c;企业的业务规模迎来了高速发展&#xff0c;其数据规模也呈现爆炸式增长&#xff0c;如果继续使用传统解决方案&#xff0c;将所有数据存储在一个表中&#xff0c;对数据的查询和维护效率将是一个巨大的挑战&#xff0c;在这个背景下…...

力扣SQL50 项目员工 I ROUND AVG

Problem: 1075. 项目员工 I &#x1f468;‍&#x1f3eb; 参考题解 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工具链&#xff08;需要选用 posix 线程版本&#xff1a;原因见此&#xff09; 二、操作步骤 官网提供了VC16构建版本的二进制包&#xff0c;但是没有给出GCC编译的版本。所以如果使用MinGW进行构建&#xff0c;那就只能从源码开始构建…...

用Vite基于Vue3+ts+DataV+ECharts开发数据可视化大屏,即能快速开发又能保证屏幕适配

数据可视化大屏 基于 Vue3、Typescript、DataV、ECharts5 框架的大数据可视化&#xff08;大屏展示&#xff09;开发。此项目vue3实现界面&#xff0c;采用新版动态屏幕适配方案&#xff0c;全局渲染组件封装&#xff0c;支持数据动态刷新渲染、内部DataV、ECharts图表都支持自…...

大二学生眼中的Netty?基于Netty实现内网穿透!

爷的开场白 掘金的朋友们大家好&#xff01;我是新来的Java练习生 CodeCodeBond&#xff01; 这段时间呢&#xff0c;博主在学习Netty&#xff0c;想做一个自己感兴趣好玩的东西&#xff0c;那就是内网穿透&#xff01;&#xff01;&#xff08;已经实现主要代理功能但有待优化…...

JavaStringBuffer与StringBuilder

StringBuffer、StringBuilder 文章目录 StringBuffer、StringBuilderStringBuffer和StringBuilder的理解可变性分析对于String对于StringBuilder 常用方法执行效率对比 StringBuffer和StringBuilder的理解 String 不可变的字符序列 StringBuffer 可变的字符序列 JDK1.0声明&…...

云徙科技助力竹叶青实现用户精细化运营,拉动全渠道销售额增长

竹叶青茶以其别具一格的风味与深厚的历史底蕴&#xff0c;一直被誉为茶中瑰宝。历经千年的传承与创新&#xff0c;竹叶青不仅坚守着茶叶品质的极致追求&#xff0c;更在数字化的浪潮中&#xff0c;率先打破传统&#xff0c;以科技力量赋能品牌&#xff0c;成为茶行业的领军者。…...

深度揭秘:深度学习框架下的神经网络架构进化

深度学习框架下的神经网络架构经历了从基础到复杂的显著进化&#xff0c;这一进程不仅推动了人工智能领域的突破性进展&#xff0c;还极大地影响了诸多行业应用。本文旨在深入浅出地揭示这一进化历程&#xff0c;探讨关键架构的创新点及其对现实世界的影响。 引言&#xff1a;…...

MySQL的DML语句

文章目录 ☃️概述☃️DML☃️添加数据☃️更新和删除数据☃️DML的重要性 ☃️概述 MySQL 通用语法分类 ● DDL: 数据定义语言&#xff0c;用来 定义数据库对象&#xff08;数据库、表、字段&#xff09; ● DML: 数据操作语言&#xff0c;用来对数据库表中的数据进行增删改 …...

Wireshark的基本用法以及注意事项

Wireshark 是一个流行的网络协议分析工具&#xff0c;可以捕获和分析网络数据包。以下是一些常见的 Wireshark 的用法&#xff1a; 安装和启动&#xff1a;首先需要下载和安装 Wireshark。安装完成后&#xff0c;可以通过启动 Wireshark 应用程序来打开它。 选择网络接口&…...

集团门户网站的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;论坛管理&#xff0c;集团文化管理&#xff0c;基础数据管理&#xff0c;公告通知管理 前台账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;论坛&#xff0…...

Tomcat基础详解

第一篇&#xff1a;Tomcat基础篇 lecture&#xff1a;邓澎波 一、构建Tomcat源码环境 工欲善其事必先利其器&#xff0c;为了学好Tomcat源码&#xff0c;我们需要先在本地构建一个Tomcat的运行环境。 1.源码环境下载 源码有两种下载方式&#xff1a; 1.1 官网下载 https://…...

【Python爬虫】爬取名人名言页面并进行简单的数据清洗(入门级)

目录 资源链接 一、网站选择 二、数据爬取要求 三、数据清洗要求 四、实现代码 1.数据采集 2.数据清洗 资源链接 下面有笔者所放的源码下载链接&#xff0c;读者可自行下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1YmTdlnbSJLvLrrx92zz6Qg 提取码&…...

Microsoft Visual C++ Redistributable 【安装包】【高速下载】

方法1、可以从官方下载&#xff0c;如下图 Visual C Redistributable for Visual Studio 2015 但是此链接只有一个版本 方法2 已经下载好并且已经整理好了2008--2022的所有版本点击下方链接即可高速下载 如果是win7-win8-win10-win11直接可以下载2015--2022版本&#xff0c…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库&#xff08;如 Redisson&#xff09;相比于开发者自己基于 Redis 命令&#xff08;如 SETNX, EXPIRE, DEL&#xff09;手动实现分布式锁&#xff0c;提供了巨大的便利性和健壮性。主要体现在以下几个方面&#xff1a; 原子性保证 (Atomicity)&#xff…...

mac 安装homebrew (nvm 及git)

mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用&#xff1a; 方法一&#xff1a;使用 Homebrew 安装 Git&#xff08;推荐&#xff09; 步骤如下&#xff1a;打开终端&#xff08;Terminal.app&#xff09; 1.安装 Homebrew…...