+ (NSString *)readQRCodeImage:(UIImage *)imagePicked {
CIImage *qrcodeImage = [CIImage imageWithCGImage:imagePicked.CGImage];
CIContext *qrcodeContext = [CIContext contextWithOptions:nil];
// detector
CIDetector *qrcodeDetector = [CIDetector detectorOfType:CIDetectorTypeQRCode context:qrcodeContext options:@{CIDetectorAccuracy:CIDetectorAccuracyHigh}];
// read features
NSArray *qrcodeFeatures = [qrcodeDetector featuresInImage:qrcodeImage];
//
NSString *qrcodeResultString = nil;
if (qrcodeFeatures && qrcodeFeatures.count > 0) {
for (CIQRCodeFeature *qrcodeFeature in qrcodeFeatures) {
if (qrcodeResultString && qrcodeResultString.length > 0) {
break;
}
qrcodeResultString = qrcodeFeature.messageString;
}
}
NSLog(@"%@",qrcodeResultString);
return qrcodeResultString;
}
我想阅读图像功能,例如iOS10中的图片 代码在iOS8和iOS9中正常工作。
答案 0 :(得分:0)
我认为他们对 CIFeautre 类进行了修改。现在您需要将其转换为子类 CIQRCodeFeature 。
我是如何在Swift中做到的:
let userFeatures = userDetector?.features(in: userImage!) as? [CIQRCodeFeature]
userDecode = (userFeatures?[0].messageString)!