###我们使用Zxing或者系统自带的CIDetector识别图片,都无法很高的识别图片的上面的二维码
如果二维码不变形的画上面两种的成功率很高,但是只要二维码有点变形就不能识别了
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(@"解析失败");
}];
}
- (void)zxingQRCode
{
UIImage * loadImage = [UIImage imageNamed:@"leftQrcodeImg"];
CGImageRef imageToDecode = loadImage.CGImage;
ZXLuminanceSource * source = [[ZXCGImageLuminanceSource alloc] initWithCGImage:imageToDecode];
ZXBinaryBitmap * bitmap = [ZXBinaryBitmap binaryBitmapWithBinarizer:[ZXHybridBinarizer binarizerWithSource:source]];
NSError * error = nil;
ZXDecodeHints * hints = [ZXDecodeHints hints];
ZXMultiFormatReader * reader = [ZXMultiFormatReader reader];
ZXResult * result = [reader decode:bitmap
hints:hints
error:&error];
// return result;
}
有了解支付宝识别的技术的么,或者给指点下,具体应该怎么做?谢谢了
上面的二维码能用相册识别图片的方法识别出来的请指点下