从相册获取二维码

iOS8之后,可以使用CIDetector(CIDetector可用于人脸识别)进行图片解析,从而使我们可以便捷的从相册中获取到二维码。

1.调用系统相册,从系统相册中选取图片

2.使用探测器(CIDetector)对选取的图片进行处理,取得图片二维码中包含的数据信息。

下面是简单的代码实现示例

- (void)choicePhoto{

//调用相册

UIImagePickerController *imagePicker = [[UIImagePickerController alloc]init];

imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

imagePicker.delegate = self;

[self presentViewController:imagePicker animated:YES completion:nil];

}

//选中图片的回调

-(void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{

NSString *content = @"" ;

//取出选中的图片

UIImage *pickImage = info[UIImagePickerControllerOriginalImage];

NSData *imageData = UIImagePNGRepresentation(pickImage);

CIImage *ciImage = [CIImage imageWithData:imageData];

//创建探测器

CIDetector *detector = [CIDetector detectorOfType:CIDetectorTypeQRCode context:nil options:@{CIDetectorAccuracy: CIDetectorAccuracyLow}];

NSArray *feature = [detector featuresInImage:ciImage];

//取出探测到的数据

for (CIQRCodeFeature *result in feature) {

content = result.messageString;

}//进行处理(音效、网址分析、页面跳转等)

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 早上使用微信的时候,突然想到以前在项目中集成扫码功能,当时没有从相册中扫描二维码的需求,加上需要向下兼容,于...
    CCN菜先生阅读 7,413评论 26 63
  • 功能介绍 实现提供 快递单号 和 快递公司 查询快递轨迹 实现 二维码 和 条形码 扫描查询 实现对个人查询记录保...
    LeeLom阅读 9,047评论 15 29
  • 自己的项目大多都是以OC写的,随着swift版本的更新和苹果的力推,学习swift成为刻不容缓的事情,今天我们就聊...
    薄阳映初雪阅读 3,076评论 2 1
  • 一.原生二维码扫描 管理输入(AVCaptureInput)和输出(AVCaptureOutput)流,包含开启和...
    Molary阅读 430评论 0 2
  • 提到从摄像头/相册获取图片是面向终端用户的,由用户去浏览并选择图片为程序使用。在这里,我们需要过UIImagePi...
    Ashoka_APP阅读 1,531评论 1 1