1,首先二維碼生成
//生成二維碼
CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
// 2.過濾器恢復默認設置
[filter setDefaults];
// 3.給過濾器添加數據(正則表達式/帳號和密碼) -- 通過KVC設置過濾器,只能設置NSData類型
NSString *dataString = @"http://www.baidu.com";
NSData *data = [dataString dataUsingEncoding:NSUTF8StringEncoding];
[filter setValue:data forKeyPath:@"inputMessage"];
// 4.獲取輸出的二維碼
CIImage *outputImage = [filter outputImage];
// 5.顯示二維碼
UIImageView *erweimaImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 250, 250)];
2 截屏渴杆,并保存一下
CGRect rect = CGRectMake(0, 0, XHW_W , XHW_H);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
[self.view.layer renderInContext:context];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
_mergeImage = img;
[_TopimageView setImage:img];
3寥枝,拼接截屏的圖片和二維碼
//合并多張圖片(不縮小,原大小)
- (UIImage *)composeWithHeader:(UIImage *)header footer:(UIImage *)footer{
CGSize size = CGSizeMake(header.size.width, (header.size.height)? + (88));
//UIGraphicsBeginImageContextWithOptions(<#CGSize size#>, BOOL opaque, CGFloat scale)
UIGraphicsBeginImageContextWithOptions(size, YES, 0.0);
CGContextRef context = UIGraphicsGetCurrentContext();
//CGContextSetFillColorWithColor(<#CGContextRef? _Nullable c#>, <#CGColorRef? _Nullable color#>)
CGContextSetFillColorWithColor(context,? [UIColor colorWithPatternImage:[UIImage imageNamed:@"WechatIMG1 2"]].CGColor);//在這段上下文中獲取到顏色UIColor
CGContextFillRect(context, CGRectMake(0, 0, size.width, size.height));
//用這個顏色填充這個上下文
[header drawInRect:CGRectMake(0, 0, header.size.width, header.size.height)];
[footer drawInRect:CGRectMake(0,? header.size.height - 150 , (100), (100))];
//[self drawText:context frame:CGRectMake(0, 0, size.width, size.height)];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}