电子产业一站式赋能平台

PCB联盟网

搜索
查看: 639|回复: 0
收起左侧

HarmonyOS AI---码生成

[复制链接]

2607

主题

2607

帖子

7472

积分

高级会员

Rank: 5Rank: 5

积分
7472
发表于 2020-9-17 19:57:06 | 显示全部楼层 |阅读模式
HarmonyOS AI---码生成,   
概述

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

1. 当前仅支持生成QR二维码(Quick Response Code)。由于QR二维码算法的限制,字符串信息的长度不能超过2953个字符。

       2. 生成的二维码图片的宽度不能超过1920像素,高度不能超过1680像素。由于QR二维码是通过正方形阵列承载信息的,建议二维码图片采用正方形,当二维码图片采用长方形时,会在QR二维码信息的周边区域留白。




开发指导


场景介绍 码生成能够根据给定的字符串信息,生成相应的二维码图片。常见应用场景举例:

  • 社交或通讯类应用:根据输入的联系人信息,生成联系人二维码。
  • 购物或支付类应用:根据输入的支付链接,生成收款或付款二维码。
      

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

开发步骤

  • 在使用码生成SDK时,需要先将相关的类添加至工程。

      

         
    • import ohos.cvinteRFace.common.ConnectionCallback;
         
    • import ohos.cvinterface.common.VisionManager;
         
    • import ohos.cvinterface.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()方法,根据输入的字符串信息生成相应的二维码图片字节流。

      

         
    • int result = barcodeDetector.detect(“This is a TestCase of IBarcodeDetector“, byteArray, SAMPLE_LENGTH, SAMPLE_LENGTH);
        
        
    如果返回值为0,表明调用成功。  
  • 当码生成能力使用完毕后,调用IBarcodeDetector的release()方法,释放资源。

      

         
    • result = barcodeDetector.release();
        
        

  • 调用VisionManager.destroy()方法,断开与能力引擎的连接。

      

         
    • VisionManager.destroy();
        
        

回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表