Я пытаюсь дать пользователю моего приложения возможность взять изображение из своей библиотеки и отсканировать QRCode от него. Вот соответствующий код:Core Image Detector (CIDetector) не обнаруживает QRCodes
Это функция, которая возвращается из Image Picker с выбранным изображением.
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 (например, https://en.wikipedia.org/wiki/File:Wikipedia_mobile_en.svg)? Вы работаете на iOS 8 и выше (не поддерживается в противном случае?) Наконец, я попытался найти пример, где контекст не ноль, но я не мог. Странно. –
Кроме того, не пытайтесь использовать это в симуляторе. не всегда работает. (http://stackoverflow.com/a/30230136/5276890, https://forums.developer.apple.com/thread/20887) –
Спасибо за ответ! Да, я тестирую на IPhone 6+ работает с IOS 8.4. Я пробовал изображения, которые я взял с QRCode, но я просто загрузил это изображение, которое вы связали, но не получило никаких результатов. –