1.iOS7以后,開始集成了二維碼的生成和讀取功能
2.生成二維碼的步驟:
導入CoreImage框架
通過濾鏡CIFilter生成二維碼
簡單的代碼案例:
//創建過濾器
CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
//設置默認
[filter setDefaults];
//給過濾器添加數據
NSString *dataString = @"鏈接......";
NSData *data = [dataString dataUsingEncoding:NSUTF8StringEncoding];
//3).通過KVO設置濾鏡inputMessage數據
[filter setValue:data forKey:@"inputMessage"];
//4).獲取輸出的二維碼
CIImage *outputImage = [filter outputImage];
//5).將CIImage轉化成UImage ,并放大顯示
self.iconImgView.image = [UIImage imageWithCIImage:outputImage scale:20.0 orientation:UIImageOrientationUp];
3.將CIImage轉化成UImage ,并放大顯示
// 創建放大的系數
CGAffineTransform tranform = CGAffineTransformMakeScale(10, 10);
// 根據放大系數放大的圖片
CIImage *scaleImage = [slCIImage imageByApplyingTransform:tranform];
UIImage *image = [UIImage imageWithCIImage:scaleImage];
4.將頭像畫到上下文中
//開啟上下文
UIImage *drawImg = img;
UIGraphicsBeginImageContext(img.size);
//將圖片畫到上下文center
[img drawInRect:CGRectMake(0, 0, img.size.width, img.size.height)];
//獲取頭像,將圖片畫到上下文中
UIImage *iconImg = [UIImage imageNamed:iconString];
if (iconImg != nil) {
CGFloat width = 60;
CGFloat height = 60;
CGFloat originX ;
CGFloat originY ;
if (iconSize.width != 0 && iconSize.height != 0) {
width = iconSize.width;
height = iconSize.height;
}
originX = (img.size.width - width) * 0.5;
originY = (img.size.height - height) * 0.5;
[iconImg drawInRect:CGRectMake(originX, originY, width, height)];
//從上下文獲取合成的新圖片
drawImg = UIGraphicsGetImageFromCurrentImageContext();
}
UIGraphicsEndImageContext(); //關閉上下文