【iOS】识别相册中的二维码

这篇博客介绍了如何在iOS应用中实现从相册选择图片并识别其中的二维码。通过UIImagePickerController让用户选择图片,然后使用Core Image框架的CIDetector进行识别,获取到二维码信息并传递给代理方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、选择图片

	UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
    imagePicker.delegate = self;
    [viewController presentViewController:imagePicker animated:YES completion:nil];

2、识别图片

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<UIImagePickerControllerInfoKey,id> *)info
{
    [picker dismissViewControllerAnimated:YES completion:nil];
    
    // 1、提取图片
    UIImage *image = info[UIImagePickerControllerOriginalImage];
    // 2、创建 CIImage
    CIImage *ciimage = [[CIImage alloc] initWithImage:image];
    // 3、识别精度
    NSDictionary *options = @{CIDetectorAccuracy: CIDetectorAccuracyHigh};
    // 4、创建识别器
    CIDetector *detector = [CIDetector detectorOfType:CIDetectorTypeQRCode context:nil options:options];
    
    NSArray *features = [detector featuresInImage:ciimage];
    
    NSString *message = nil;
    for (CIFeature *item in features) {
        if ([item isKindOfClass:[CIQRCodeFeature class]]) {
            message = [(CIQRCodeFeature *)item messageString];
            break;
        }
    }
    
    if ([self.delegate respondsToSelector:@selector(recognitionString:)]) {
        [self.delegate recognitionString:message];
    }
}

参考:iOS开发教程之识别图片中二维码功能的实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值