1.按照下圖所示加入系統庫
2.代碼如下
@interfaceViewController ()
@property(nonatomic,strong)UIImageView *imgView;
@end
@implementation ViewController
- (void)viewDidLoad {
[superviewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.imgView=[[UIImageViewalloc]initWithFrame:CGRectMake(100,100, [UIScreenmainScreen].bounds.size.width/2.0, [UIScreen mainScreen].bounds.size.width/2.0)];
[self.view addSubview:_imgView];
[self qrenCode];}
-(void)qrenCode
{
//二維碼濾鏡
CIFilter *filter=[CIFilterfilterWithName:@"CIQRCodeGenerator"];
//恢復濾鏡的默認屬性
[filtersetDefaults];
//將字符串轉換成NSData
NSData *data=[@"1234567890"dataUsingEncoding:NSUTF8StringEncoding];
//通過KVO設置濾鏡inputmessage數據
[filtersetValue:data forKey:@"inputMessage"];
//獲得濾鏡輸出的圖像
CIImage *outputImage=[filteroutputImage];
//將CIImage轉換成UIImage,並放大顯示
_imgView.image=[selfcreateNonInterpolatedUIImageFormCIImage:outputImagewithSize:100.0];
//如果還想加上陰影,就在ImageView的Layer上使用下面代碼添加陰影
_imgView.layer.shadowOffset=CGSizeMake(0,0.5);//設置陰影的偏移量
_imgView.layer.shadowRadius=1;//設置陰影的半徑
_imgView.layer.shadowColor=[UIColorblackColor].CGColor;//設置陰影的顏色爲黑色
_imgView.layer.shadowOpacity=0.3;
}
//改變二維碼大小
- (UIImage *)createNonInterpolatedUIImageFormCIImage:(CIImage *)image withSize:(CGFloat) size {
CGRect extent = CGRectIntegral(image.extent);
CGFloat scale = MIN(size/CGRectGetWidth(extent), size/CGRectGetHeight(extent));
// 創建bitmap;
size_t width = CGRectGetWidth(extent) * scale;
size_t height = CGRectGetHeight(extent) * scale;
CGColorSpaceRef cs =CGColorSpaceCreateDeviceGray();
CGContextRef bitmapRef =CGBitmapContextCreate(nil, width, height,8, 0, cs, (CGBitmapInfo)kCGImageAlphaNone);
CIContext *context = [CIContextcontextWithOptions:nil];
CGImageRef bitmapImage = [contextcreateCGImage:image fromRect:extent];
CGContextSetInterpolationQuality(bitmapRef,kCGInterpolationNone);
CGContextScaleCTM(bitmapRef, scale, scale);
CGContextDrawImage(bitmapRef, extent, bitmapImage);
// 保存bitmap到圖片
CGImageRef scaledImage =CGBitmapContextCreateImage(bitmapRef);
CGContextRelease(bitmapRef);
CGImageRelease(bitmapImage);
return [UIImageimageWithCGImage:scaledImage];
}
3.如果想要加LOGO圖片的直接加載圖片在二維碼中心即可。