HarmonyOS generateBarcode生成的二维码中间如何加logo

generateBarcode生成的二维码中间如何加logo?

通过通过文本生成码图,生成的二维码为纯二维码,如何在这个二维码中间加一个logo?

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/scan-barcodegenerate-V5#section9684181513312

HarmonyOS
2024-12-27 16:20:30
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Excelsior_abit

针对此问题:

方案一:可以使用Stack组件在二维码上叠加logo图标,小尺寸的logo不会影响到二维码的识别。

demo如下:

// 导入码图生成需要的图片模块、错误码模块
import { scanCore, generateBarcode } from '@kit.ScanKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { image } from '@kit.ImageKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

@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(() => {
        // 以QR码为例,码图生成参数
        this.pixelMap = undefined;
        let content: string = 'huawei';
        let options: generateBarcode.CreateOptions = {
          scanType: scanCore.ScanType.QR_CODE,
          height: 400,
          width: 400
        }
        // 码图生成接口,成功返回PixelMap格式图片
        generateBarcode.createBarcode(content, options).then((pixelMap: image.PixelMap) => {
          this.pixelMap = pixelMap;
        }).catch((error: BusinessError) => {
          hilog.error(0x0001, '[generateBarcode]', 'promise error : %{public}s', JSON.stringify(error));
        })
      })
      // 获取生成码后显示
      if (this.pixelMap) {
        Stack({alignContent:Alignment.Center}){
          Image(this.pixelMap).width(300).height(300).objectFit(ImageFit.Contain)
          Image($r('app.media.startIcon')).width(50).height(50)
        }
      }
    }
    .width('100%')
    .height('100%')
  }
}

方案二:使用HarmonyOS 版的zxing三方库来带logo的二维码图片,HarmonyOS 版zxing库地址:

https://gitee.com/openharmony-tpc/zxing

使用zxing生成带logo的二维码图片可参考网上的案例 :

https://blog.csdn.net/donkor_/article/details/79799366

可以在生成二维码后使用canvas将logo绘制到二维码上

HarmonyOS canvas可参考如下文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-drawing-customization-on-canvas-V5

分享
微博
QQ
微信
回复
2024-12-27 19:02:15
相关问题
HarmonyOS 二维生成失败
299浏览 • 1回复 待解决
HarmonyOS 二维生成demo
671浏览 • 2回复 待解决
HarmonyOS APP可以生成二维,扫安装
1052浏览 • 1回复 待解决
HarmonyOS zxing二维
477浏览 • 1回复 待解决
HarmonyOS 二维条码扫描识别
899浏览 • 1回复 待解决
HarmonyOS如何无感知扫描二维
729浏览 • 1回复 待解决
openHarmony-Api8项目,如何生成二维
1279浏览 • 0回复 待解决
HarmonyOS 支持扫描二维吗?
751浏览 • 1回复 待解决
HarmonyOS扫描二维方案是什么?
2445浏览 • 1回复 待解决
二维扫描三方库推荐
511浏览 • 1回复 待解决
HarmonyOS h5加载二维屏幕变亮
430浏览 • 1回复 待解决
Canvas组件实现二维中心内嵌图标
1187浏览 • 1回复 待解决
HarmonyOS 二维显示和导出base64
318浏览 • 1回复 待解决