/**
* 生成二維碼
*/
+ (UIImage *)creatCIQRCodeImage:(NSString *)dataStr{
//創(chuàng)建過濾器,這里的@"CIQRCodeGenerator"是固定的
CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
//恢復(fù)默認(rèn)設(shè)置
[filter setDefaults];
//給過濾器添加數(shù)據(jù)
NSData *data = [dataStr dataUsingEncoding:NSUTF8StringEncoding];
//value必須是NSData類型
[filter setValue:data forKeyPath:@"inputMessage"];
//生成二維碼
CIImage *outputImage = [filter outputImage];
//顯示二維碼
return [self creatNonInterpolatedUIImageFormCIImage:outputImage withSize:100.0];
}
+ (UIImage *)creatNonInterpolatedUIImageFormCIImage:(CIImage *)image withSize:(CGFloat)size {
CGRect extent = CGRectIntegral(image.extent);
CGFloat scale = MIN(size/CGRectGetWidth(extent), size/CGRectGetHeight(extent));
//創(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);
//保存bitmap圖片
CGImageRef scaledImage = CGBitmapContextCreateImage(bitmapRef);
CGContextRelease(bitmapRef);
CGImageRelease(bitmapImage);
return [UIImage imageWithCGImage:scaledImage];
}
iOS根據(jù)字符串生成二維碼
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- h文件 import@interface QrCodeGenerateVC : UIViewController ...
- // 將 base64的圖片字符串value轉(zhuǎn)化成Datalet imageData = Data(base64E...
- 最近寫個項(xiàng)目正好遇到了要自己生成二維碼圖片,研究了一下寫了下面通過字符串生成二維碼圖片的方法.大家可以拿過直接用的...
- 近日,物聯(lián)網(wǎng)界面設(shè)計(jì)課程進(jìn)入驗(yàn)收階段,其中二維碼生成階段有些許難搞,在我經(jīng)過多方查閱資料,終于解決了這一難題,現(xiàn)在...