HarmonyOS QRCode在二维码中间加入logo图片

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

方案一:可以使用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%')
  }
}

方案二:使用zxing三方库来带logo的二维码图片,zxing库地址:https://gitee.com/openharmony-tpc/zxing

使用zxing生成带logo的二维码图片可参考网上的案例 :https://blog.csdn.net/donkor_/article/details/79799366

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

canvas可参考如下文档: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-drawing-customization-on-canvas-V5

分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS zxing二维
43浏览 • 1回复 待解决
HarmonyOS 二维条码扫描识别
613浏览 • 1回复 待解决
HarmonyOS 二维生成的demo
243浏览 • 2回复 待解决
HarmonyOS 支持扫描二维吗?
399浏览 • 1回复 待解决
HarmonyOS如何无感知扫描二维
360浏览 • 1回复 待解决
QRCode二维码长度限制256个字符
545浏览 • 1回复 待解决
二维扫描三方库推荐
201浏览 • 1回复 待解决
HarmonyOS扫描二维的方案是什么?
2079浏览 • 1回复 待解决
HarmonyOS h5加载二维屏幕变亮
46浏览 • 1回复 待解决
Canvas组件实现二维中心内嵌图标
955浏览 • 1回复 待解决
HarmonyOS 二维显示和导出base64
58浏览 • 1回复 待解决
openHarmony-Api8项目,如何生成二维
974浏览 • 0回复 待解决