Warm tip: This article is reproduced from serverfault.com, please click

swift-适用于 IOS 的 Firebase 条码扫描仪

(swift - Firebase Barcode Scanner for IOS)

发布于 2020-12-31 17:50:31

因此,我正在尝试将Firebase的条形码扫描API用于我的IOS应用程序。一切都正常运行(目前),但是我不确定将图片发送到.detect函数后如何访问条形码信息。

在 firebase 网站上的文档中,它说:“如果条形码识别操作成功,检测器将返回一组 VisionBarcode 对象。每个 VisionBarcode 对象代表一个在图像中检测到的条形码。”

有人可以帮助我了解如何访问条形码数组吗?下面我包含了一个指向文档的链接(我从那里获取代码)和我的代码图片。

代码

https://firebase.google.com/docs/ml-kit/ios/read-barcodes#swift_7

    func scanBarcode(userImage: UIImage){
    print("SCAN")
    let format = VisionBarcodeFormat.all
    let barcodeOptions = VisionBarcodeDetectorOptions(formats: format)
    var vision = Vision.vision()
    let barcodeDetector = vision.barcodeDetector(options: barcodeOptions)
    let visionImage = VisionImage(image: userImage)
    barcodeDetector.detect(in: visionImage) { features, error in
      guard error == nil, let features = features, !features.isEmpty else {
      //  print(barcodes)
        return
      }
        print("unsuccesful scan")
      // ...
    }
    
}
Questioner
Manov Jain
Viewed
0
valosip 2021-01-01 02:07:29

你成功扫描的逻辑有点偏离:你需要在你的守卫之后打印特征

func scanBarcode(userImage: UIImage){
    print("SCAN")
    let format = VisionBarcodeFormat.all
    let barcodeOptions = VisionBarcodeDetectorOptions(formats: format)
    var vision = Vision.vision()
    let barcodeDetector = vision.barcodeDetector(options: barcodeOptions)
    let visionImage = VisionImage(image: userImage)
    barcodeDetector.detect(in: visionImage) { features, error in
        guard error == nil, let features = features, !features.isEmpty else {
            print("unsuccessful scan, either there is an error, or features is empty")
            return
        }
        print("successful scan")
        print(features)
        // ...
     }
}