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图片的直接加载图片在二维码中心即可。