核心图像检测器(CIDetector)没有检测到QRCodes

我试图让我的应用程序的用户能够从他们的库中获取图像并从中扫描QR码。 这是相关的代码:

这是从图像select器返回所选图像的function。

func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) { let thisImage:CIImage? = CIImage(image: image) let code = performQRCodeDetection(thisImage!) self.dismissViewControllerAnimated(true, completion: nil) self.performSegueWithIdentifier("goBackSegue", sender: code) } 

在那个函数里面我调用这个函数来做QRCode扫描:

 func performQRCodeDetection(image: CIImage) -> String { var decode = "" let options = [CIDetectorAccuracy: CIDetectorAccuracyHigh] let detector = CIDetector(ofType: CIDetectorTypeQRCode, context: nil, options: options) let features = detector.featuresInImage(image) for feature in features as! [CIQRCodeFeature] { decode = feature.messageString } return decode } 

可变特征总是空的。 图像中绝对有一个QRCode。 我从各个方向和大小的形象。 我无法得到任何结果。

有什么想法吗?

谢谢!

问题在于相册的照片质量。 如果你把一个qr图像文件从包中replace“image”,例如。 [UIImage imageNamed:@“foobar.png”],会出现qr结果。 顺便说一句,我试过可能照片,没有运气得到它的作品。