ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

HarmonyOS之AI能力:二维码的生成和使用

2021-06-28 20:32:34  阅读:251  来源: 互联网

标签:SAMPLE AI IBarcodeDetector LENGTH 生成 VisionManager HarmonyOS 二维码


一、码生成

  • 码生成能够根据开发者给定的字符串信息和二维码图片尺寸,返回相应的二维码图片字节流。
  • 调用方可以通过二维码字节流生成二维码图片。

二、约束与限制

  • 当前仅支持生成 QR 二维码(Quick Response Code)。
  • 由于 QR 二维码算法的限制,字符串信息的长度不能超过2953个字符。生成的二维码图片的宽度不能超过 1920 像素,高度不能超过 1680 像素。
  • 由于 QR 二维码是通过正方形阵列承载信息的,建议二维码图片采用正方形,当二维码图片采用长方形时,会在 QR 二维码信息的周边区域留白。

三、应用场景

  • 码生成能够根据给定的字符串信息,生成相应的二维码图片。常见应用场景举例:
    • 社交或通讯类应用:根据输入的联系人信息,生成联系人二维码。
    • 购物或支付类应用:根据输入的支付链接,生成收款或付款二维码。

四、接口说明

  • 码生成提供了的 IBarcodeDetector() 接口,常用方法的功能描述如下:
接口名方法功能描述
IBarcodeDetectorint detect(String barcodeInput, byte[] bitmapOutput, int width, int height);根据给定的信息和二维码图片尺寸,生成二维码图片字节流
IBarcodeDetectorint release();停止QR码生成服务,释放资源

五、开发步骤

  • 在使用码生成 SDK 时,需要先将相关的类添加至工程:
	import ohos.ai.cv.common.ConnectionCallback;
	import ohos.ai.cv.common.VisionManager;
	import ohos.ai.cv.qrcode.IBarcodeDetector;
  • 定义 ConnectionCallback 回调,实现连接能力引擎成功与否后的操作:
	ConnectionCallback connectionCallback = new ConnectionCallback() {
	    @Override
	    public void onServiceConnect() {
	        // Do something when service connects successfully
	    }
	
	    @Override
	    public void onServiceDisconnect() {
	        // Do something when service connects unsuccessfully
	    }
	};
  • 调用 VisionManager.init() 方法,将此工程的 context 和 connectionCallback 作为入参,建立与能力引擎的连接,context 应为 ohos.aafwk.ability.Ability 或 ohos.aafwk.ability.AbilitySlice 的实例或子类实例:
	int result = VisionManager.init(context, connectionCallback);
  • 实例化 IBarcodeDetector 接口,将此工程的 context 作为入参:
	IBarcodeDetector barcodeDetector = VisionManager.getBarcodeDetector(context);
  • 定义码生成图像的尺寸,并根据图像大小分配字节流数组空间:
	final int SAMPLE_LENGTH = 152;
	byte[] byteArray = new byte[SAMPLE_LENGTH * SAMPLE_LENGTH * 4];
  • 调用 IBarcodeDetector的detect() 方法,根据输入的字符串信息生成相应的二维码图片字节流,如果返回值为0,表明调用成功:
	int result = barcodeDetector.detect("This is a TestCase of IBarcodeDetector", byteArray, SAMPLE_LENGTH, SAMPLE_LENGTH);
  • 当码生成能力使用完毕后,调用 IBarcodeDetector 的 release() 方法,释放资源:
	result = barcodeDetector.release();
  • 调用 VisionManager.destroy() 方法,断开与能力引擎的连接:
	VisionManager.destroy();

标签:SAMPLE,AI,IBarcodeDetector,LENGTH,生成,VisionManager,HarmonyOS,二维码
来源: https://blog.csdn.net/Forever_wj/article/details/118310715

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有