鸿蒙(API 12 Beta3版)【通过字节数组生成码图】

基本概念

码图生成能力支持将字节数组转换为自定义格式的码图。

场景介绍

码图生成能力支持将字节数组转换为自定义格式的码图。

例如:调用码图生成能力, 将字节数组转换成交通一卡通二维码使用。

约束与限制

只支持QR Code生成,根据纠错水平不同对生成参数有不同的要求,参数限制可见下表

纠错水平参数内容限制
LEVEL_L字节数组长度限制建议不超过2048。
LEVEL_M字节数组长度限制建议不超过2048。
LEVEL_Q字节数组长度限制建议不超过1536。
LEVEL_H字节数组长度限制建议不超过1024。

说明

生成码参数建议:

  • 码图颜色和背景

    建议使用默认颜色和背景:黑色码图、白色背景。如果码图颜色和背景对比度较小会影响识别率。

  • 码图边距

    建议使用默认边距1,单位:px,取值范围:[1, 10]。

  • 码图大小

    输入的width和height值相同且均大于等于200小于等于4096,否则生成的码图过小会影响识别。

业务流程

1

  1. 用户向应用发起生成码请求后,传入需要生成的码的信息,包括码的类型、宽高等。
  2. 应用通过调用Scan Kit的createBarcode接口启动码图生成能力。
  3. Scan Kit通过将字节数组转换为码图并返回给应用。
  4. 应用向用户返回生成码结果。

接口说明

通过字节数组生成码图,以Promise形式生成码图。

接口名接口描述
[createBarcode](content: ArrayBuffer, options: [CreateOptions]): Promise<image.[PixelMap]>码图生成接口,返回image.PixelMap类型的参数,可以使用Image组件渲染成图片。使用Promise异步回调返回生成的码图。

开发步骤

码图生成根据传参内容直接生成所需码图,需要传入固定参数和可选参数。

以下示例为调用码图生成能力的createBarcode接口实现码图生成。

  1. 导入码图生成接口模块,该模块提供了码图生成的参数和方法,导入方法如下。
// 导入码图生成需要的图片模块、错误码模块
import { scanCore, generateBarcode } from '@kit.ScanKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { image } from '@kit.ImageKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { buffer } from '@kit.ArkTS';
  1. 调用码图生成能力的createBarcode接口实现码图生成。
  • 通过Promise方式回调,获取生成的码图。
const TAG: string = 'Create barcode';@Entry
@Component
struct Index {@State pixelMap: image.PixelMap | undefined = undefinedbuild() {Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {Button('generateBarcode Promise').onClick(() => {this.pixelMap = undefined;let content: string =
'0177C10DD10F7768600202312110000063458FD14112345678FFFFD381012610b746365409210201b66636540ad0200020000000000110e617003201000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006645fbec664358ECF657CB40693c92da';let contentBuffer: ArrayBuffer = buffer.from(content, 'hex').buffer; // 通过包含十六进制字符的字符串创建Bufferlet options: generateBarcode.CreateOptions = {scanType: scanCore.ScanType.QR_CODE,height: 400,width: 400}// 码图生成接口,成功返回PixelMap格式图片generateBarcode.createBarcode(contentBuffer, options).then((pixelMap: image.PixelMap) => {this.pixelMap = pixelMap;hilog.info(0x0001, TAG, 'Succeeded in creating barCode.');}).catch((error: BusinessError) => {hilog.error(0x0001, TAG, `Failed to createBarCode. Code: ${error.code}, message: ${error.message}`);})})// 获取生成码后显示if (this.pixelMap) {Image(this.pixelMap).width(300).height(300).objectFit(ImageFit.Contain)}}.width('100%').height('100%')}
}

最后呢

很多开发朋友不知道需要学习那些鸿蒙技术?鸿蒙开发岗位需要掌握那些核心技术点?为此鸿蒙的开发学习必须要系统性的进行。

而网上有关鸿蒙的开发资料非常的少,假如你想学好鸿蒙的应用开发与系统底层开发。你可以参考这份资料,少走很多弯路,节省没必要的麻烦。由两位前阿里高级研发工程师联合打造的《鸿蒙NEXT星河版OpenHarmony开发文档》里面内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(Harmony NEXT)技术知识点

如果你是一名Android、Java、前端等等开发人员,想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。下面是鸿蒙开发的学习路线图。

在这里插入图片描述

针对鸿蒙成长路线打造的鸿蒙学习文档。话不多说,我们直接看详细鸿蒙(OpenHarmony )手册(共计1236页)与鸿蒙(OpenHarmony )开发入门视频,帮助大家在技术的道路上更进一步。

  • 《鸿蒙 (OpenHarmony)开发学习视频》
  • 《鸿蒙生态应用开发V2.0白皮书》
  • 《鸿蒙 (OpenHarmony)开发基础到实战手册》
  • OpenHarmony北向、南向开发环境搭建
  • 《鸿蒙开发基础》
  • 《鸿蒙开发进阶》
  • 《鸿蒙开发实战》

在这里插入图片描述

总结

鸿蒙—作为国家主力推送的国产操作系统。部分的高校已经取消了安卓课程,从而开设鸿蒙课程;企业纷纷跟进启动了鸿蒙研发。

并且鸿蒙是完全具备无与伦比的机遇和潜力的;预计到年底将有 5,000 款的应用完成原生鸿蒙开发,未来将会支持 50 万款的应用。那么这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行! 自↓↓↓拿
1

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

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

相关文章

LuaJit分析(七)LuaJit -b 命令分析

Luajit -b 命令用于生成字节码文件&#xff0c;通过之前对 -bl命令的分析&#xff1a; luajit -bl 命令分析 可知&#xff0c;-b系统的命令都通过执行 bcsave.lua脚本来完成&#xff0c; luajit -b命令最终是执行bcsave.lua脚本中的 bcsave函数&#xff0c;bcsave函数代码如下…

【已解决】win11笔记本电脑突然无法检测到其他显示器 / 无法使用扩展屏(2024.8.29 / 驱动更新问题)

我们点击 winx &#xff0c;找到设备管理器&#xff0c;查看显示适配器&#xff1a; 主要问题就出现在 NVIDIA GeForce RTX 3060 Laptop GPU 上&#xff08;虽然我把所有驱动都重新更新了一遍&#x1f62d;&#xff09;。 常用驱动更新&#xff1a; dell 驱动更新&#xff08…

深入解析Nginx的Fair调度算法:实现请求的智能分配

在Web服务器和负载均衡器的领域&#xff0c;Nginx以其高性能和灵活性而闻名。Nginx提供的负载均衡模块支持多种调度算法&#xff0c;其中fair算法是一种动态分配请求的方法&#xff0c;它根据后端服务器的响应时间来智能地分配请求。本文将详细介绍Nginx的fair调度算法的工作原…

android 14及android15 READ_EXTERNAL_STORAGE跟相册,视频权限的适配

最近在做Android15的适配&#xff0c;发现WRITE_EXTERNAL_STORAGE跟READ_EXTERNAL_STORAGE无法使用了&#xff0c;被弃用了 在android 13添加了外部细分权限&#xff0c;READ_MEDIA_IMAGES跟READ_MEDIA_VIDEO及 READ_MEDIA_AUDIO权限&#xff0c;而在应用内部的文件管理则不需要…

HTML <template> 标签的基本技巧

前言 HTML中的<template>标记是 Web 开发中一个功能强大但经常未得到充分利用的元素。它允许你定义可重复使用的内容&#xff0c;这些内容可以克隆并插入 DOM 中而无需最初渲染。 此功能对于创建动态、交互式 Web 应用程序特别有用。 在本文中&#xff0c;我们将探讨有…

排序算法之希尔排序详细解读(附带Java代码解读)

希尔排序&#xff08;Shell Sort&#xff09;是一种基于插入排序的改进算法&#xff0c;它通过将待排序的数组分成若干个子数组&#xff0c;并对这些子数组进行插入排序&#xff0c;从而提高整体排序效率。希尔排序的主要思想是利用分组的方式来减少元素之间的移动距离&#xf…

STM32G474采用“多个单通道ADC转换”读取3个ADC引脚的电压

STM32G474采用“多个单通道ADC转换”读取3个ADC引脚的电压&#xff1a;PC0、PA1和PA2。本测试将ADC1_IN6映射到PC0引脚&#xff0c;ADC12_IN2映射到PA1引脚&#xff0c;ADC1_IN3映射到PA2引脚。 1、ADC输入 ADC输入电压范围&#xff1a;Vref– ≤ VIN ≤ Vref ADC支持“单端输入…

C#面:ActionResult 和 ViewResult有什么不同?

ActionResult 和 ViewResult 是 ASP.NET MVC 中的两个重要的类&#xff0c;用于处理控制器方法的返回结果。 ActionResult&#xff1a;是一个抽象基类&#xff0c;表示控制器方法的返回结果。它提供了一系列派生类&#xff0c;如ViewResult、RedirectResult、JsonResult 等&am…

突破编程:C++中的组合模式(Composite Pattern)

突破编程&#xff1a;C中的组合模式&#xff08;Composite Pattern&#xff09; 在软件设计领域&#xff0c;组合模式&#xff08;Composite Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许你将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式让客户…

顺序表和链表知识点

1 顺序表 顺序表是指用一段物理地址连续的空间去存储数据的线性结构。 顺序表有两种&#xff1a;静态顺序表&#xff0c;动态顺序表。 1.1 静态顺序表结构体定义 typedef int ElemDataSL;typedef struct SequeList {ElemDataSL arr[100];int size; }SL; 静态顺序表在创建结构体…

【 html+css 绚丽Loading 】000026 五行吞灵盘

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享htmlcss 绚丽Loading&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495…

数学建模学习(120):使用Python实现基于AHP的供应商选择分析

AHP为很多比赛中常用到的方法。以案例学习方法,大家要认真理解案例和代码,代码和思维是通用的。 文章目录 1.引言2. 案例:供应商选择2.1 问题描述2.2 决策的层次结构3. AHP 方法的理论背景4. 案例应用:供应商选择的 AHP 实现4.1 建立成对比较矩阵4.2 准则的成对比较矩阵4.3…

介绍一下KAFKA的ACK机制?

在Apache Kafka中&#xff0c;ACK&#xff08;Acknowledgment&#xff09;机制是用于确保消息被成功写入Kafka集群中并被复制&#xff08;如果有启用复制功能&#xff09;的重要部分。Kafka的ACK机制允许生产者&#xff08;Producer&#xff09;和消费者&#xff08;Consumer&a…

网络安全领域含金量最高的5大赛事,每个网安人的梦!

做网络安全一定要知道的5大赛事&#xff0c;含金量贼高&#xff0c;如果你能拿奖&#xff0c;国内大厂随你挑&#xff0c;几乎是每个有志网安人的梦&#xff01; 一、 DEF CON CTF&#xff08;DEF CON Capture the Flag&#xff09; DEF CON CTF是DEF CON黑帽大会上的一项著名…

江协科技STM32学习- P7 GPIO输入

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…

数据结构(树、平衡树、红黑树)

目录 树 树的遍历方式 平衡二叉树 旋转机制 左旋 右旋 旋转实例 左左 左右 右右 右左 总结 红黑树 树 相关概念 节点的内部结构如下 二叉树与二叉查找树的定义如下 树的遍历方式 前序遍历&#xff1a;当前节点&#xff0c;左子节点&#xff0c;右子结点 中序遍…

string的模拟实现与深浅拷贝

在上一章中可以看见&#xff0c;string类函数的基本实现和用法&#xff0c;在本文。来用基础的语言来模拟实现string类&#xff0c;来了解一下他们的基础底层&#xff1b; 在VS中string&#xff0c;我们可以看见&#xff0c;实现VS的类成员很多&#xff0c;很麻烦&#xff1b; …

【STM32】电容触摸按键

电容按键就是酷&#xff0c;但据我使用过电容按键版的洗澡计费机子后&#xff0c;一生黑&#xff08;湿手优化没做好的电容按键简直稀碎&#xff09;。 大部分图片来源&#xff1a;正点原子HAL库课程 专栏目录&#xff1a;记录自己的嵌入式学习之路-CSDN博客 目录 1 触摸按…

Zookeeper官网Java示例代码解读(一)

2024-08-22 1. 基本信息 官网地址&#xff1a; https://zookeeper.apache.org/doc/r3.8.4/javaExample.html 示例设计思路 Conventionally, ZooKeeper applications are broken into two units, one which maintains the connection, and the other which monitors data. I…

【C++ Primer Plus习题】7.5

问题: 解答: #include <iostream> using namespace std;int function(int n) {if (n 0)return 1;if (n 1)return 1;return n* function(n - 1); }int main() {int value 0;while (true){cout << "请输入数字:";cin >> value;cout << val…