很簡單苟穆,就是幾句代碼甲喝。
// 創(chuàng)建一個uiimageView裝生成的二維碼圖片
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(20, 40, 100, 100)];
imageView.backgroundColor = [UIColor redColor];
[self.view addSubview:imageView];
// 生成二維碼圖片
NSString *url = @"http://www.reibang.com/u/40ab6b5c782a";
CIImage *barcodeImage;
NSData *data = [url dataUsingEncoding:NSISOLatin1StringEncoding allowLossyConversion:false];
CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
[filter setValue:data forKey:@"inputMessage"];// 得到二維碼圖片
[filter setValue:@"H" forKey:@"inputCorrectionLevel"];//設置二維碼的糾錯水平,越高糾錯水平越高愧旦,可以污損的范圍越大
barcodeImage = [filter outputImage];
// 消除模糊
CGFloat scaleX = imageView.frame.size.width / barcodeImage.extent.size.width; // extent 返回圖片的frame
CGFloat scaleY = imageView.frame.size.height / barcodeImage.extent.size.height;
CIImage *transformedImage = [barcodeImage imageByApplyingTransform:CGAffineTransformScale(CGAffineTransformIdentity, scaleX, scaleY)];
imageView.image = [UIImage imageWithCIImage:transformedImage];
生成條形碼就是將里面的@"CIQRCodeGenerator"換成@"CICode128BarcodeGenerator"并且將 [filter setValue:@"H" forKey:@"inputCorrectionLevel"];注釋掉世剖,其他的都是一樣的。