gpt4 book ai didi

ios - 使用 CIDetector 扫描条码(一维和二维)

转载 作者:可可西里 更新时间:2023-11-01 05:49:30 25 4
gpt4 key购买 nike

我想从实时摄像头和图像中扫描二维码和条形码。我以前使用 ZBar 库来扫描代码。它不扫描特定类型的二维码和条形码。此外,Apple 的 AVFoundation 框架在从实时摄像头扫描代码时似乎更加快速和准确。

所以我不想用ZBar。为了扫描从图库中选取的图像的代码,我使用了 CIDetector。但似乎 CIDetector 无法从图像中扫描条形码。我搜索了整个堆栈流 CIDetector For other Barcode Types , Scanning barcode from UIImage natively (i.e., not using ZBar)

但我还没有找到使用 CIDetector 从图库中挑选的图像扫描条形码的方法。是否可以使用 CIDetector 从 UIImages 扫描条形码?

不推荐其他第三方库。我想使用苹果的默认框架来完成这项工作。

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

[picker dismissViewControllerAnimated:YES completion:nil];

UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
CIImage *img = [[CIImage alloc]initWithImage:image];

CIDetector* detector = [CIDetector detectorOfType:CIDetectorTypeQRCode context:nil options:@{CIDetectorAccuracy:CIDetectorAccuracyHigh}];
if (detector)
{
NSArray* featuresR = [detector featuresInImage:img];
NSString* decodeR;
for (CIQRCodeFeature* featureR in featuresR)
{
NSLog(@"decode %@ ",featureR.messageString);
decodeR = featureR.messageString;

[self showAlertWithTitle:@"Success" withMessage:decodeR];
return;
}

[self showAlertWithTitle:@"Error" withMessage:@"Invalid Image"];
}

}

最佳答案

到目前为止,Apple 的 AVFoundation Framework 还没有提供扫描从图像库中选取的条形码的方法。

所以我通过使用 AVFoundation 框架在实时相机中扫描二维码和条码解决了我的问题,而当用户从图库中拍摄照片时,我使用 ZBar 框架扫描二维码和条码。

关于ios - 使用 CIDetector 扫描条码(一维和二维),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43784009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com