美文网首页
鸿蒙学习-二维码生成

鸿蒙学习-二维码生成

作者: 学渣中的战斗渣 | 来源:发表于2021-04-20 10:20 被阅读0次

鸿蒙提供了众多的AI,其中包括二维码生成,不过并没有提供二维码图片解码的功能,下面给大家讲解,基于SDK(API Version 5)进行开发

下:

核心代码

//定义ConnectionCallback回调,实现连接能力引擎成功与否后的操作。

ConnectionCallback connectionCallback =new ConnectionCallback() {

@Override

                public void onServiceConnect() {

                    //连接成功

                    //实例化IBarcodeDetector接口,将此工程的context作为入参

                    IBarcodeDetector barcodeDetector = VisionManager.getBarcodeDetector(getAbility());

                    //定义码生成图像的尺寸,并根据图像大小分配字节流数组空间

                    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);

                    //释放资源

                    barcodeDetector.release();

                    //断开与能力引擎的连接

                    VisionManager.destroy();

                    if (HwHiAIResultCode.AIRESULT_SUCCESS != result) {

                      //二维码转换失败处理

                        return;

                     }

                    //把流转换成图片

                    ImageSource.SourceOptions sourceOptions =new

                    ImageSource.SourceOptions();

                    sourceOptions.baseDensity =4;//像素密度

                    PixelMap pixelMap = ohos.media.image.ImageSource.create(byteArray,

                    sourceOptions).createPixelmap(new ImageSource.DecodingOptions());

                    PixelMapElement element =new PixelMapElement(pixelMap);

                    image.setBackground(element);

                }

                @Override

                public void onServiceDisconnect() {

                    //断开连接,和华为开发人员确认过了,目前没有调用

                }

        });

    }

};

//调用VisionManager.init()方法,将此工程的context和connectionCallback 作为入参,建立与能力

引擎的连接,context应为ohos.aafwk.ability.Ability或ohos.aafwk.ability.AbilitySlice的实例或

子类实例。

            int result = VisionManager.init(getAbility(), connectionCallback);

            //HwHiAIResultCode:定义调用华为AI引擎接口的结果码

            if (HwHiAIResultCode.AIRESULT_SUCCESS != result) {

                //判断是否初始化成功

               }

相关文章

网友评论

      本文标题:鸿蒙学习-二维码生成

      本文链接:https://www.haomeiwen.com/subject/vtgglltx.html