HarmonyOS generateBarcode \(码图生成\)-无响应?

调用一下方法,结果回调无响应

// 以QR码为例,码图生成参数
let options: generateBarcode.CreateOptions = {
  scanType: 'https://www.huawei.com',
  height: 300,
  width: 300
}
// 码图生成接口,成功返回PixelMap格式图片
generateBarcode.createBarcode(url, options, (error: BusinessError, result: image.PixelMap) => {
  if (error) {
    return;
  }
})
阅读 446
1 个回答

可以尝试通过QRCode生成URL的二维码

@Entry
@Component
struct QRCodeExample {
  private value: string = 'https://www.huawei.com'
  build() {
    Column({ space: 5 }) {
      Text('normal').fontSize(9).width('90%').fontColor(0xCCCCCC).fontSize(30)
      QRCode(this.value).width(140).height(140)
      // 设置二维码颜色
      Text('color').fontSize(9).width('90%').fontColor(0xCCCCCC).fontSize(30)
      QRCode(this.value).color(0xF7CE00).width(140).height(140)
      // 设置二维码背景色
      Text('backgroundColor').fontSize(9).width('90%').fontColor(0xCCCCCC).fontSize(30)
      QRCode(this.value).width(140).height(140).backgroundColor(Color.Orange)
      // 设置二维码不透明度
      Text('contentOpacity').fontSize(9).width('90%').fontColor(0xCCCCCC).fontSize(30)
      QRCode(this.value).width(140).height(140).color(Color.Black).contentOpacity(0.1)
    }.width('100%').margin({ top: 5 })
  }
}

也可以使用三方库@ohos/zxing,来生成二维码:

https://ohpm.openharmony.cn/\#/cn/detail/@ohos%2Fzxing

或者使用三方库 @ohos/qr-code-generator:

https://gitee.com/openharmony-sig/qr-code-generator/tree/master\#1%E5%88%9B%E5%BB%BAcontext

图片转base64可以参考代码

async pixelMapToBase64String(pixelMap: image.PixelMap): Promise<string> {
  const imagePackerApi: image.ImagePacker = image.createImagePacker();
  let packOpts: image.PackingOption = { format: 'image/jpeg', quality: 30 };
  try {
  let readBuffer = await imagePackerApi.packing(pixelMap, packOpts)
  let bufferArr = new Uint8Array(readBuffer)
  let str = new util.Base64Helper().encodeToStringSync(bufferArr)
  return str
} catch (err) {
  QDLogUtils.error(`pixelMapToBase64String err = ${err}`)
}
return ''
}
logo
HarmonyOS
子站问答
访问
宣传栏