我们正在使用Vision库来扫描 GS1 条形码。
该库无法识别 iOS 16 版本中的特殊字符“GS”。
"GS" --> 组分隔符 (ASCII 29)
我们在旧版本上没有遇到这样的问题。例如 iOS 15.6 或更低版本。我在下面上传了 GS1 条形码示例图像。
扫描后我们应该得到:{GS}10BF50001A{GS}21003032{GS}1122012722VD020
我们在 iOS 16 上得到的是:10BF50001A210030321122012722VD020
我还发布了有关如何使用该库的示例代码。我们没有更改代码,该错误仅出现在 iOS 16 版本上。我们想知道是否引入了错误。
func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {
guard let pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) else {
return
}
let imageRequestHandler = VNImageRequestHandler(cvPixelBuffer: pixelBuffer, orientation: .right)
do {
try imageRequestHandler.perform([detectBarcodeRequest])
} catch {
logger.error(tag: TAG, "barcode error: \(error)")
}
}
private lazy var detectBarcodeRequest = VNDetectBarcodesRequest { [weak self] request, …Run Code Online (Sandbox Code Playgroud)