harmony-utils之ScanUtil,码工具类(扫码、码图生成、图片识码)

boyanx5个月前技术教程31

harmony-utils 简介与说明


harmony-utils 一款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具类,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、相册、扫码、文件、日志,异常捕获、字符、字符串、数字、集合、日期、随机、base64、加密、解密、JSON等一系列的功能和操作,能够满足各种不同的开发需求。
picker_utils 是harmony-utils拆分出来的一个子库,包含PickerUtil、PhotoHelper、ScanUtil。

下载安装
ohpm i @pura/harmony-utils
ohpm i @pura/picker_utils

 //全局初始化方法,在UIAbility的onCreate方法中初始化 AppUtil.init()
 onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
   AppUtil.init(this.context);
 }

API方法与使用


startScanForResult 调用默认界面扫码,使用Promise方式异步返回解码结果

ScanUtil.startScanForResult().then((scanResult) => {
  let scanStr1 = JSON.stringify(scanResult, null, 2);
});

generateBarcode 码图生成,使用Promise异步返回生成的码图

let txtStr = "harmony-utils 一款高效的OpenHarmony/HarmonyOS工具包,封装了常用工具类,提供一系列简单易用的方法";
let pixelMap = await ScanUtil.generateBarcode(txtStr);
ImageUtil.savePixelMap(pixelMap, FileUtil.getFilesDirPath(""), "qr_code.png");

decode 调用图片识码,使用Promise方式异步返回识码结果

let filePath = FileUtil.getFilesDirPath("","qr_code.png");
if (FileUtil.accessSync(this.filePath)) {
  ScanUtil.decode(this.filePath).then((scanResult) => {
    let scanStr3 = JSON.stringify(scanResult, null, 2);
  })
} else {
  ToastUtil.showToast("请先点击generateBarcode生成二维码图片");
}

decodeImage 调用图像数据识码能力,使用Promise异步回调返回识码结果

//优先获取图像的YuvByteBuffer, YuvHeight, YuvWidth数据,比如获取宽高是1920*1080时
let byteImg: detectBarcode.ByteImage = {
  byteBuffer: YuvByteBuffer,
  width: 1920,
  height: 1080,
  format: detectBarcode.ImageFormat.NV21
};
ScanUtil.decodeImage(byteImg).then((scanResult) => {
  let scanStr3 = JSON.stringify(scanResult, null, 2);
});

onPickerScanForResult 通过picker拉起图库并选择图片,并调用图片识码

ScanUtil.onPickerScanForResult().then((scanResult) => {
  let scanStr2 = JSON.stringify(scanResult, null, 2);
  Utils.showSheetText(scanStr2);
}).catch((err: BusinessError) => {
  ToastUtil.showToast("扫码异常!");
});

canIUseScan 判断

let canIUseScan = ScanUtil.canIUseScan();
ToastUtil.showToast(`当前设备是否支持码能力:${canIUseScan}`);

相关文章

离线二维码条形码生成器(离线扫码技术)

功能说明这个高级离线二维码与条形码批量生成器具有以下强大功能:二维码生成器批量生成:支持多行输入,每行内容生成一个二维码尺寸设置:4种不同尺寸可选(150px-300px)容错级别:支持4种容错级别(...

Python 生成条形码、二维码 (Code 128、EAN-13、QR code等)

条形码和二维码是现代信息交换和数据存储的重要工具,它们将信息以图形的形式编码,便于机器识别和数据处理,被广泛应用于物流、零售、医疗、教育等各领域。本文将介绍如何使用Python快速生成各种常见的条形码...

技工外来人员入园登记二维码扫码如何操作?

长期以来,技工院校的外来人员登记依赖纸质表格填写。访客需手动填写姓名、身份证号、来访事由等信息,门卫逐一核对并记录,整个过程耗时5-10分钟。若遇多人同时到访,排队等待时间可能延长至半小时以上,不仅影...

互联二维码生成器,满足二维码的多样化需求

在数字化时代,二维码作为一种快速、便捷的信息传递方式,已经广泛应用于各行各业。无论是商业推广、产品展示,还是个人分享、信息存储,二维码都发挥着不可替代的作用。然而,如何高效、便捷地生成和管理这些二维码...

好用的OCR图片文本识别小工具推荐(PDF也行!)

平常在工作中,时不时会遇到需要把图片中的文本识别出来的需求。mac点开图片能自动识别文本,windows也可以。不过,他们都没法去一下子批量识别获取。而且识别后的文本也没法进行格式化,更不用说怎么自定...

药盒上这个码竟能查到这么多信息!你的药安全吗?赶快“扫一扫”

药品追溯码就是每盒药品的“电子身份证”,具有唯一性。一盒药品的追溯码,只应有一次被扫码销售的记录,若重复出现多次,就存在假药、回流药或药品被串换销售的可能。2024年4月以来,国家医保局全力开展医保药...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。