我想从实时摄像头和图像中扫描qr码和条形码。我之前使用的是ZBar库进行扫描,但它不能扫描特定类型的qr码和条形码。同时,苹果的AVFoundation框架在从实时摄像头扫描代码时似乎更快更准确。
因此,我不想使用ZBar。为了从图库中选择的图像扫描代码,我正在使用CIDetector。但是,CIDetector似乎无法从图像中扫描条形码。我已经在Stack Overflow上搜索过CIDetector For other Barcode Types ,Scanning barcode from UIImage natively (i.e., not using ZBar),但我没有找到使用CIDetector从图库中挑选的图片中扫描条形码的方法。
是否可能使用CIDetector从UIImage中扫描条形码?
请勿建议其他第三方库。我想使用苹果的默认框架来完成这项工作。
因此,我不想使用ZBar。为了从图库中选择的图像扫描代码,我正在使用CIDetector。但是,CIDetector似乎无法从图像中扫描条形码。我已经在Stack Overflow上搜索过CIDetector For other Barcode Types ,Scanning barcode from UIImage natively (i.e., not using ZBar),但我没有找到使用CIDetector从图库中挑选的图片中扫描条形码的方法。
是否可能使用CIDetector从UIImage中扫描条形码?
请勿建议其他第三方库。我想使用苹果的默认框架来完成这项工作。
-(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"];
}
}
featuresInImage
时,对于包含条形码的图像,我得到了一个空数组。 - Jaffer Sheriff