iOS二维码识别/二维码生成

:CIDetectorAccuracyHigh}];

CIDetector的初始化方法无效。推测是苹果API的问题。

生成二维码图片

在iOS8及以上版本使用苹果的API生成二维码图片,代码如下://encode

- (UIImage *)encodeQRImageWithContent:(NSString *)content size:(CGSize)size {    UIImage *codeImage = nil;    if (iOS8_OR_LATER) {        NSData *stringData = [content dataUsingEncoding: NSUTF8StringEncoding];        //生成        CIFilter *qrFilter = [CIFilter filterWithName:@"CIQRCodeGenerator"];        [qrFilter setValue:stringData forKey:@"inputMessage"];        [qrFilter setValue:@"M" forKey:@"inputCorrectionLevel"];        UIColor *onColor = [UIColor blackColor];        UIColor *offColor = [UIColor whiteColor];        //上色        CIFilter *colorFilter = [CIFilter filterWithName:@"CIFalseColor"                                           keysAndValues:                                 @"inputImage",qrFilter.outputImage,                                 @"inputColor0",[CIColor colorWithCGColor:onColor.CGColor],                                 @"inputColor1",[CIColor colorWithCGColor:offColor.CGColor],                                 nil];        CIImage *qrImage = colorFilter.outputImage;        CGImageRef cgImage = [[CIContext contextWithOptions:nil] createCGImage:qrImage fromRect:qrImage.extent];        UIGraphicsBeginImageContext(size);        CGContextRef context = UIGraphicsGetCurrentContext();        CGContextSetInterpolationQuality(context, kCGInterpolationNone);        CGContextScaleCTM(context, 1.0, -1.0);        CGContextDrawImage(context, CGContextGetClipBoundingBox(context), cgImage);        codeImage = UIGraphicsGetImageFromCurrentImageContext();        UIGraphicsEndImageContext();        CGImageRelease(cgImage);    } else {        codeImage = [QRCodeGenerator qrImageForString:content imageSize:size.width];    }    return codeImage;}

iOS8以下使用libqrencode库来生成二维码图片。