1、选择图片
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
imagePicker.delegate = self;
[viewController presentViewController:imagePicker animated:YES completion:nil];
2、识别图片
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<UIImagePickerControllerInfoKey,id> *)info
{
[picker dismissViewControllerAnimated:YES completion:nil];
// 1、提取图片
UIImage *image = info[UIImagePickerControllerOriginalImage];
// 2、创建 CIImage
CIImage *ciimage = [[CIImage alloc] initWithImage:image];
// 3、识别精度
NSDictionary *options = @{CIDetectorAccuracy: CIDetectorAccuracyHigh};
// 4、创建识别器
CIDetector *detector = [CIDetector detectorOfType:CIDetectorTypeQRCode context:nil options:options];
NSArray *features = [detector featuresInImage:ciimage];
NSString *message = nil;
for (CIFeature *item in features) {
if ([item isKindOfClass:[CIQRCodeFeature class]]) {
message = [(CIQRCodeFeature *)item messageString];
break;
}
}
if ([self.delegate respondsToSelector:@selector(recognitionString:)]) {
[self.delegate recognitionString:message];
}
}