HarmonyOS 鸿蒙Next Scan Kit没有识别缩放功能 多码识别后的按钮不在二维码中心

发布于 1周前 作者 vueper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next Scan Kit没有识别缩放功能 多码识别后的按钮不在二维码中心 Scan Kit 没有识别缩放功能 多码识别后的按钮不在二维码中心

2 回复

可以使用customScan (自定义界面扫码)实现多码识别。

具体文档如下:

  • 开发指南:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/scan-customscan-V13
  • API参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/scan-customscan-api-V13

多码识别后的按钮不在二维码中心的这个问题,可以试下如下步骤:

  1. 扫码Result返回的单位是px

  2. 现在Xcomponent的宽高要固定设置为1920/1080(如果不这么设置,可能黑屏)

  3. 可以试下如下代码:

setWindowSize():void{
  let displayClass = display.getDefaultDisplaySync();
  let maxLen: number = px2lpx(Math.max(displayClass.height, displayClass.width));
  let minLen: number = px2lpx(Math.min(displayClass.height, displayClass.width));
  let ratio: number = 9/16

  if(ratio < minLen/maxLen){
    this.cameraWidth = minLen
    this.cameraHeight = minLen/ratio;
    this.cameraScreenOffsetY = (maxLen - this.cameraHeight)/2;
    this.cameraScreenOffsetX = 0
  } else {
    this.cameraHeight = maxLen;
    this.cameraWidth = maxLen*ratio
    this.cameraScreenOffsetX = (minLen - this.cameraWidth)/2;
    this.cameraScreenOffsetY = 0
  }
}

let ratio = this.cameraWidth/1080
let rect: scanBarcode.ScanCodeRect|undefined = result[0].scanCodeRect
if(rect){
  this.x = (rect.left + rect.right)/2 * ratio + this.cameraScreenOffsetX
  this.y = (rect.top + rect.bottom)/2 * ratio + this.cameraScreenOffsetY
}

多码识别,关于默认扫码界面选择按钮不在码的中心的问题。

鸿蒙扫码返回坐标是相对于1920*1080,转换坐标可以自行转换下。具体画点的方法可以参考:

  • https://github.com/HMS-Core/hms-scan-demo

缩放功能:手动缩放和识别二维码过小自动放大的功能。

鸿蒙不支持手动缩放。现在有变焦接口,可以自行通过自定义界面集成这接口来实现。

识别二维码过小自动放大的能力,单码和多码都支持。

更多关于HarmonyOS 鸿蒙Next Scan Kit没有识别缩放功能 多码识别后的按钮不在二维码中心的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对帖子标题中提到的“HarmonyOS 鸿蒙Next Scan Kit没有识别缩放功能,多码识别后的按钮不在二维码中心”的问题,以下是专业回答:

HarmonyOS的Next Scan Kit在设计时可能未包含自动缩放识别功能,这意味着它在处理不同尺寸的二维码时,可能无法自动调整识别区域的大小。对于多码识别场景,Next Scan Kit的按钮定位可能基于默认的识别框位置,而非实际二维码的中心。这可能是由于算法在处理多个识别目标时,未对按钮位置进行精细调整。

为了改善这一体验,开发者可能需要手动调整识别框的大小和位置,以适应不同尺寸的二维码。同时,对于多码识别后的按钮位置,可以考虑在识别完成后,通过计算二维码的实际位置来动态调整按钮的位置,使其更接近二维码的中心。

然而,这些调整可能需要对Next Scan Kit的API有较深入的了解,并可能需要一定的开发工作量。如果开发者在尝试上述方法后仍无法解决问题,建议直接联系鸿蒙系统的官方技术支持团队或访问其开发者论坛寻求帮助。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部