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;
}
}
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;
}
}
相关文章推荐
- iOS中的KVO的简介与用法
- iOS处理大图片
- iOS支付宝客户端应用开发指南
- 昨天遇见一个 问题 支付宝回调后黑屏
- iOS正则表达式
- iOS 静态度制作方法详细
- IOS实现BLE后台通信
- IOS截屏,View截图的基本方法
- iOS正则表达式检验手机号,邮箱等
- iOS 手机号正则表达式
- iOS 隐藏/去掉 导航栏返回按钮中的文字
- 密码中有特殊的字符IOS如何处理 IOS中URL包含中文参数的问题
- iOS - 学习路径图
- ios 上拉加载更多tableview MJRefresh
- 不让苹果开发者账号折磨我
- libxml/tree.h‘file not found
- 【iOS开发-图层】自己定义图层的两种方式
- iOS开发-常用第三方开源框架介绍
- iOS 处理图片的一些小 Tip
- iOS 延时执行的四种方法