您的位置:首页 > 移动开发 > IOS开发

ios原生api识别二维码图片

2016-01-06 11:16 218 查看
- (IBAction)reconizerPictureClick:(UIButton *)sender {

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];

}

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info

{

[picker dismissViewControllerAnimated:YES completion:nil];

UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage];

if (!image) {

image = [info objectForKey:UIImagePickerControllerOriginalImage];

}

CIContext *context = [CIContext contextWithOptions:nil];

CIImage *superImage = [CIImage imageWithCGImage:image.CGImage];

CIFilter *lighten = [CIFilter filterWithName:@"CIColorControls"];

[lighten setValue:superImage forKey:kCIInputImageKey];

float i = 0;

while (i <=4 ) {

[lighten setValue:@(i) forKey:@"inputContrast"];

CIImage *result = [lighten valueForKey:kCIOutputImageKey];

CGImageRef cgImage = [context createCGImage:result fromRect:[superImage extent]];

NSArray *features = [self.detector featuresInImage:[CIImage imageWithCGImage:cgImage]];

CGImageRelease(cgImage);

if (features.count >=1) {

CIQRCodeFeature *feature = [features firstObject];

NSString *scannedResult = feature.messageString;

NSLog(@"二维码扫描的结果是%@",scannedResult);

return;

}

i = i+0.5;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: