iOS生成原生二维码
来源:互联网 发布:微博营销号 知乎 编辑:程序博客网 时间:2024/05/22 03:15
- (void)creatCIQRCodeImage{ // 1.创建过滤器,这里的@"CIQRCodeGenerator"是固定的 CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"]; // 2.恢复默认设置 [filter setDefaults]; // 3. 给过滤器添加数据 NSString *dataString = [NSString stringWithFormat:@"%@type=0&id=%@",BTCOACHURL,[BTGlobalUser sharedGlobal].defaultUser.userid]; // 0-驾校 1-教练 NSData *data = [dataString dataUsingEncoding:NSUTF8StringEncoding]; // 注意,这里的value必须是NSData类型 [filter setValue:data forKeyPath:@"inputMessage"]; // 4. 生成二维码 CIImage *outputImage = [filter outputImage]; // 5. 显示二维码 self.myCodeImageView.image = [self creatNonInterpolatedUIImageFormCIImage:outputImage withSize:280];}- (UIImage *)creatNonInterpolatedUIImageFormCIImage:(CIImage *)image withSize:(CGFloat)size{ CGRect extent = CGRectIntegral(image.extent); CGFloat scale = MIN(size/CGRectGetWidth(extent), size/CGRectGetHeight(extent)); // 1. 创建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); //原图 UIImage *outputImage = [UIImage imageWithCGImage:scaledImage]; //给二维码加 logo 图 UIGraphicsBeginImageContextWithOptions(outputImage.size, NO, [[UIScreen mainScreen] scale]); [outputImage drawInRect:CGRectMake(0,0 , size, size)]; //logo图 UIImage *waterimage = [UIImage imageNamed:@"com_code2@2x.png"]; //把logo图画到生成的二维码图片上,注意尺寸不要太大(最大不超过二维码图片的%30),太大会造成扫不出来 [waterimage drawInRect:CGRectMake(size/2-30,size/2-30,60,60)]; UIImage *newPic = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return newPic; // return [UIImage imageWithCGImage:scaledImage];}
阅读全文
0 0
- iOS生成原生二维码
- iOS 二维码生成/原生库
- iOS原生二维码扫描&libqrencode生成二维码
- ios 原生二维码的扫描和生成
- iOS开发---原生高清二维码生成
- iOS原生API生成二维码(CIFilter)
- 【iOS】CoreImage原生二维码生成(一)
- iOS开发之原生二维码生成
- iOS 原生二维码扫描、生成、识别
- iOS开发--生成二维码及扫描二维码(原生)
- 原生二维码的生成
- 生成二维码-Apple 原生
- 原生二维码的生成
- iOS二维码生成与扫描(zbar和原生AVFoundation)
- iOS开发-原生二维码的扫描和生成
- iOS开发-原生二维码的扫描和生成
- iOS原生二维码生成与扫描以及条形码的扫描
- iOS 原生二维码[扫码]与[生成]详解
- Palindrome Number
- 小米手机安装应用报 Installation failed with message Failed to establish session
- Metrics vs Statistics
- 一个JAVA程序员成长之路分享
- Eclipse vs. IDEA快捷键对比大全
- iOS生成原生二维码
- 提高编码技能的10个小窍门
- LeetCode 485:Max Consecutive Ones(连续1的最大个数,边界条件)
- 利用Tlbimp.exe和AxImp.exe将ocx 控件转换为公共语言类型程序集
- 重构:二、在对象之间搬移特性
- CentOS安装mysql环境
- 使用GraphViz画caffe的网络结构图
- Oracle/MySQL/SQL Server查询前N条数据
- 防止页面以外的提交