簡單二維碼的生成

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();  //關閉上下文
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容