识别二维码图片

今天做项目的时候需要添加一个根据识别二维码图片,以下就是实现的步骤以及相关代码:

1.在选择相册图片响应的代理事件(- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info)获取图片,并将其转换成NSData。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    NSString *type = [info objectForKey:UIImagePickerControllerMediaType];
    if ([type isEqualToString:@"public.image"]) {
        UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
        NSData *imageData = UIImagePNGRepresentation(image);
        //imgView.image = image;
        [picker dismissViewControllerAnimated:YES completion:nil];
        [self readQRCodeFromImageWithFileURL:imageData];
    }
}

2.iOS8以后可以直接使用 CIQRCodeFeature进行解析,代码如下:

- (void)readQRCodeFromImageWithFileURL:(NSData *) data {
    CIImage *image = [CIImage imageWithData:data];
    //CIImage *image = [CIImage imageWithContentsOfURL:url];// 也可以根据URL找到CIImage
    if (image){
        //创建CIDetector
        CIDetector *qrDetector = [CIDetector detectorOfType:CIDetectorTypeQRCode
                                                    context:[CIContext contextWithOptions:@{kCIContextUseSoftwareRenderer : @(YES)}]
                                                    options:@{CIDetectorAccuracy : CIDetectorAccuracyHigh}];
        NSArray *features = [qrDetector featuresInImage:image];
        if ([features count] > 0){
            for (CIFeature *feature in features){
                if (![feature isKindOfClass:[CIQRCodeFeature class]]){
                    continue;
                }
                CIQRCodeFeature *qrFeature = (CIQRCodeFeature *)feature;
                NSString *content = qrFeature.messageString;//解析的数据
                NSLog(@"content is :%@",content);
            }
        }
    }
    [self.extensionContext completeRequestReturningItems:nil
                                       completionHandler:^(BOOL expired) {
                                           NSLog(@"解析失败");
                                       }];
}


以上就是ios解析二维码图片的方法,以及相关代码,希望对大家有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值