二維碼生成

第一個(gè)方法

  // 1.創(chuàng)建過濾器
 CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];

// 2.恢復(fù)默認(rèn)
[filter setDefaults];

// 3.給過濾器添加數(shù)據(jù)(正則表達(dá)式/賬號(hào)和密碼)
NSString *dataString = @"http://www.520it.com";
NSData *data = [dataString dataUsingEncoding:NSUTF8StringEncoding];
[filter setValue:data forKeyPath:@"inputMessage"];

// 4.獲取輸出的二維碼
CIImage *outputImage = [filter outputImage];

//因?yàn)樯傻亩S碼模糊,所以通過createNonInterpolatedUIImageFormCIImage:outputImage來獲得高清的二維碼圖片
// 5.顯示二維碼
imageView.image = [self createNonInterpolatedUIImageFormCIImage:outputImage withSize:200 string:@"http://www.520it.com"];

第二個(gè)方法:

- (UIImage *)createNonInterpolatedUIImageFormCIImage:(CIImage *)image withSize:(CGFloat) size string:(NSString *)string
{

CGRect extent = CGRectIntegral(image.extent);
CGFloat scale = MIN(size/CGRectGetWidth(extent), size/CGRectGetHeight(extent));

// 1.創(chuàng)建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 = [CIContext contextWithOptions:nil];
CGImageRef bitmapImage = [context createCGImage:image fromRect:extent];
CGContextSetInterpolationQuality(bitmapRef, kCGInterpolationNone);
CGContextScaleCTM(bitmapRef, scale, scale);
CGContextDrawImage(bitmapRef, extent, bitmapImage);

// 2.保存bitmap到圖片
CGImageRef scaledImage = CGBitmapContextCreateImage(bitmapRef);
CGContextRelease(bitmapRef);
CGImageRelease(bitmapImage);
return [UIImage imageWithCGImage:scaledImage];

}

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

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

  • 二維碼生成需要借助第三方j(luò)ar包。我這里使用的是QRcode。給大家一個(gè)連接,自行下載:http://downlo...
    麥兜叮叮當(dāng)閱讀 699評(píng)論 0 0
  • 一、二維碼生成 步驟: 創(chuàng)建一個(gè)imageView,并設(shè)置imageView的frame 創(chuàng)建CIFilter,f...
    Hyman0819閱讀 280評(píng)論 0 0
  • 85后智能硬件創(chuàng)業(yè)者,坐標(biāo)在廣東順德和深圳,負(fù)責(zé)硬件產(chǎn)品策劃,開發(fā),市場(chǎng)。 目前專注于給家庭帶來更高效的口腔洗護(hù)電...
    JaydenWang閱讀 228評(píng)論 1 0
  • 僧行 我在黑夜里呼喚黎明 我在雨幕里祈禱藍(lán)天 守得云開終見月 月盡有陽始得開 光明萬丈照大地 霧散終究心明...
    泊暖閱讀 578評(píng)論 0 1

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