鸿蒙(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. 用户向应用发起生成码请求后,传入需要生成的码的信息,包括码的类型、宽高等。
  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';

  2. 调用码图生成能力的createBarcode接口实现码图生成。

  • 通过Promise方式回调,获取生成的码图。

    const TAG: string = 'Create barcode';

    @Entry
    @Component
    struct Index {
    @State pixelMap: image.PixelMap | undefined = undefined
    build() {
    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; // 通过包含十六进制字符的字符串创建Buffer
    let 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 万款的应用。那么这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行! 自↓↓↓拿

相关推荐
修己xj21 小时前
三月,我只想做好这四件事
程序员
不要秃头啊1 天前
别再谈提效了:AI 时代的开发范式本质变了
前端·后端·程序员
jonjia1 天前
引入新维度化解权衡难题
程序员
jonjia1 天前
优秀的工程师如何打破规则
程序员
jonjia1 天前
在大厂交付大型项目的策略
程序员
jonjia1 天前
RFC 与设计文档
程序员
jonjia1 天前
为什么你(或任何人)应该成为一名研发经理?
程序员
jonjia1 天前
管理技术质量 (Manage Technical Quality)
程序员
jonjia1 天前
大厂软件工程师职业发展路径
程序员
jonjia1 天前
关于工程师与影响力
程序员