//二维码生成
//UIImageView *theImageView = [[UIImageView alloc]init];
//[self.view addSubview:theImageView];
CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
[filter setDefaults];
NSData *data = [@"hello worold!" dataUsingEncoding:NSUTF8StringEncoding];
[filter setValue:data forKey:@"inputMessage"];
CIImage *outputImage = [filter outputImage];
CIContext *context = [CIContext contextWithOptions:nil];
CGImageRef cgImage = [context createCGImage:outputImage
fromRect:[outputImage extent]];
UIImage *image = [UIImage imageWithCGImage:cgImage
scale:1.
orientation:UIImageOrientationUp];
NSLog(@"image QRCode : %@",NSStringFromCGSize(image.size));
// Resize without interpolating
UIImage *resized = [self resizeImage:image
withQuality:kCGInterpolationNone
rate:5.0];
NSLog(@"%@",NSStringFromCGSize(resized.size));
UIImageView *theImageView =[[UIImageView alloc]initWithImage:resized];
theImageView.frame = CGRectMake(100, 200, 100, 100);
[self.view addSubview:theImageView];
CGImageRelease(cgImage);
由于生成的二维码和图片非常小,所以使用方法放大了5倍
//Resize image
- (UIImage *)resizeImage:(UIImage *)image
withQuality:(CGInterpolationQuality)quality
rate:(CGFloat)rate
{
UIImage *resized = nil;
CGFloat width = image.size.width * rate;
CGFloat height = image.size.height * rate;
UIGraphicsBeginImageContext(CGSizeMake(width, height));
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetInterpolationQuality(context, quality);
[image drawInRect:CGRectMake(0, 0, width, height)];
resized = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return resized;
}
生成的结果: