扫描相册中的二维码
直接上代码:
0.代理协议
UIImagePickerControllerDelegate, UINavigationControllerDelegate
1.定义
@property (strong, nonatomic) CIDetector *detector;
2.“相册”按钮的点击事件
-(void)clickRightBarButton:(UIBarButtonItem*)item
{
self.detector = [CIDetector detectorOfType:CIDetectorTypeQRCode context:nil options:@{ CIDetectorAccuracy : CIDetectorAccuracyHigh }];
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = NO;
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self.navigationController presentViewController:picker animated:YES completion:nil];
}
3.照片选择后的代理方法
- ( void )imagePickerController:( UIImagePickerController *)picker didFinishPickingMediaWithInfo:( NSDictionary *)info
{
[picker dismissViewControllerAnimated:YES completion:nil];
UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage];
if (!image){
image = [info objectForKey:UIImagePickerControllerOriginalImage];
}
NSArray *features = [self.detector featuresInImage:[CIImage imageWithCGImage:image.CGImage]];
if (features.count >=1) {
CIQRCodeFeature *feature = [features objectAtIndex:0];
NSString *scannedResult = feature.messageString;
NSLog(@" ---- %@", scannedResult);
NSArray *typeArray = [scannedResult componentsSeparatedByString:@","];
if (typeArray.count <= 0) {
return;
}
// 分析扫描结果
[self analyzeQRCode:typeArray];
}
}

浙公网安备 33010602011771号