二維碼生成

黑白二維碼

//黑白二維碼生成
-(void)demo1{
    //CoreImage包含在UIKit框架中
    //獲取內(nèi)置的所有過濾器
    NSArray *filters = [CIFilter filterNamesInCategory:kCICategoryBuiltIn];
    NSLog(@"%@",filters);
    //1.創(chuàng)建二維碼過濾器
    CIFilter *qrFilter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
    //2.設(shè)置默認值
    [qrFilter setDefaults];
    //3.打印輸入的key
    NSLog(@"%@",qrFilter.inputKeys);
    /*
     inputMessage, 二維碼信息
     inputCorrectionLevel 容錯水平
     */
    
    //4.設(shè)置二維碼的信息
    
    [qrFilter setValue:[@"無聊" dataUsingEncoding:NSUTF8StringEncoding] forKey:@"inputMessage"];
    //5.輸出二維碼圖片
    CIImage *ciImage = qrFilter.outputImage;
    NSLog(@"%@",ciImage);
    ciImage = [ciImage imageByApplyingTransform:CGAffineTransformMakeScale(10, 10)];
    self.imageView.image = [UIImage imageWithCIImage:ciImage];
}

彩色二維碼

//彩色二維碼
-(void)demo2{
    //CoreImage包含在UIKit框架中
    //獲取內(nèi)置的所有過濾器
    NSArray *filters = [CIFilter filterNamesInCategory:kCICategoryBuiltIn];
    NSLog(@"%@",filters);
    //1.創(chuàng)建二維碼過濾器
    CIFilter *qrFilter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
    //2.設(shè)置默認值
    [qrFilter setDefaults];
    //3.打印輸入的key
    NSLog(@"%@",qrFilter.inputKeys);
    /*
     inputMessage, 二維碼信息
     inputCorrectionLevel 容錯水平
     */
    
    //4.設(shè)置二維碼的信息
    
    [qrFilter setValue:[@"無聊" dataUsingEncoding:NSUTF8StringEncoding] forKey:@"inputMessage"];
    //5.輸出二維碼圖片
    CIImage *ciImage = qrFilter.outputImage;
    NSLog(@"%@",ciImage);
    //6.獲取顏色過濾器
    CIFilter *colorFilter = [CIFilter filterWithName:@"CIFalseColor"];
    //7.設(shè)置默認值
    [colorFilter setDefaults];
    NSLog(@"%@",colorFilter.inputKeys);
    /*
     inputImage 需要改變顏色的圖片
     inputColor0, 前景色
     inputColor1  背景色
     */
    [colorFilter setValue:ciImage forKey:@"inputImage"];
    [colorFilter setValue:[CIColor colorWithRed:1 green:0 blue:0] forKey:@"inputColor0"];
    [colorFilter setValue:[CIColor colorWithRed:0 green:1 blue:0] forKey:@"inputColor1"];
    ciImage = colorFilter.outputImage;
    
    ciImage = [ciImage imageByApplyingTransform:CGAffineTransformMakeScale(10, 10)];
    self.imageView.image = [UIImage imageWithCIImage:ciImage];

}

二維碼添加頭像

//二維碼添加頭像
-(void)demo3{
    //CoreImage包含在UIKit框架中
    //獲取內(nèi)置的所有過濾器
    NSArray *filters = [CIFilter filterNamesInCategory:kCICategoryBuiltIn];
    NSLog(@"%@",filters);
    //1.創(chuàng)建二維碼過濾器
    CIFilter *qrFilter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
    //2.設(shè)置默認值
    [qrFilter setDefaults];
    //3.打印輸入的key
    NSLog(@"%@",qrFilter.inputKeys);
    /*
     inputMessage, 二維碼信息
     inputCorrectionLevel 容錯水平
     */
    
    //4.設(shè)置二維碼的信息
    
    [qrFilter setValue:[@"無聊" dataUsingEncoding:NSUTF8StringEncoding] forKey:@"inputMessage"];
    //5.輸出二維碼圖片
    CIImage *ciImage = qrFilter.outputImage;
    NSLog(@"%@",ciImage);
    ciImage = [ciImage imageByApplyingTransform:CGAffineTransformMakeScale(10, 10)];
    //6.開啟圖形上下文
    UIImage *uiImage = [UIImage imageWithCIImage:ciImage];
    UIGraphicsBeginImageContext(uiImage.size);
    //7.畫二維碼圖片
    [uiImage drawInRect:CGRectMake(0, 0, uiImage.size.width, uiImage.size.height)];
    //8.畫自定義圖片
    UIImage *image = [UIImage imageNamed:@"picture"];
    CGFloat imageW = 100;
    CGFloat imageH = 100;
    CGFloat imageX = (uiImage.size.width - imageW) * 0.5;
    CGFloat imageY = (uiImage.size.height - imageH) * 0.5;
    [image drawInRect:CGRectMake(imageX, imageY, imageW, imageH)];
    //9.獲取當前上下文中圖片
    UIImage *finalImage = UIGraphicsGetImageFromCurrentImageContext();
    //10.關(guān)閉圖形上下文
    UIGraphicsEndImageContext();
    
    self.imageView.image = finalImage;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 不得不說,二維碼是小日本的一個偉大發(fā)明,它密度小、信息容量大、容錯能力強、成本低、制作難度低等優(yōu)點,使得二維碼得到...
    杰森_Jason閱讀 5,833評論 8 10
  • 說到二維碼,大家腦海里想必都是,黑框框套著黑點點,千篇一律。其實不然,二維碼也可以很好看,下邊為大家推薦幾款二維碼...
    安迪大叔閱讀 2,908評論 3 13
  • 前面我們已經(jīng)學會了iOS二維碼生成相關(guān)的知識,這篇文章主要是講解一下iOS二維碼掃描相關(guān)的知識. 二維碼掃描步驟 ...
    _Hal_閱讀 448評論 0 1
  • 項目中經(jīng)常會用到二維碼,常見的二維碼使用有,掃描,生成,識別,閃光燈.這個系列主要記錄下二維碼相關(guān)的筆記.有關(guān)二維...
    _Hal_閱讀 1,388評論 0 1
  • 8月5日晨讀感悟 看了今天的晨讀材料,我想起了金星、汪涵、岳云鵬、……他們每一個都能說會道,口才十分犀利,一個人就...
    沈瑾瑾_9328閱讀 198評論 0 0

友情鏈接更多精彩內(nèi)容