根据字符串链接生成二维码
2016-06-01 09:05
423 查看
#pragma mark - InterpolatedUIImage=因为生成的二维码是一个CIImage,我们直接转换成UIImage的话大小不好控制,所以使用下面方法返回需要大小的UIImage - (UIImage *)createNonInterpolatedUIImageFormCIImage:(CIImage *)image withSize:(CGFloat) size { CGRect extent = CGRectIntegral(image.extent); CGFloat scale = MIN(size/CGRectGetWidth(extent), size/CGRectGetHeight(extent)); 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); CGImageRef scaledImage = CGBitmapContextCreateImage(bitmapRef); CGContextRelease(bitmapRef); CGImageRelease(bitmapImage); return [UIImage imageWithCGImage:scaledImage]; }
#pragma mark - QRCodeGenerator--首先是二维码的生成,使用CIFilter很简单,直接传入生成二维码的字符串即可 - (CIImage *)createQRForString:(NSString *)qrString { NSData *stringData = [qrString dataUsingEncoding:NSUTF8StringEncoding]; CIFilter *qrFilter = [CIFilter filterWithName:@"CIQRCodeGenerator"]; [qrFilter setValue:stringData forKey:@"inputMessage"]; [qrFilter setValue:@"M" forKey:@"inputCorrectionLevel"]; return qrFilter.outputImage; }
调用:
UIImage *boundImg = [self createNonInterpolatedUIImageFormCIImage:[self createQRForString:@"http://baidu.com"] withSize:250.0f];
相关文章推荐
- 团体程序设计天梯赛-练习集 L2-002 链表去重 解题报告
- 随便想想
- 分页函数(Python)
- 据说这些诗都还不错
- 构建之法阅读笔记06
- 机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 1)
- 笔试题71. LeetCode OJ (58)
- Python的namedtuple使用详解
- 【实战】设计模式应用之策略模式
- CocoaPods 添加第三方库报错
- 一道面试题:三个线程循环有序输出10次ABCABC...
- 【4】机器学习之坚如磐石:大数定理和中心极限定理
- js跳转页面方法
- IOS中延时执行的几种方式的比较和汇总
- opencv学习_4(opencv基础数据结构 CvPoint & CvSize & CvRect & CvScalar & CvArr & CvMat)
- java中dynamic web project与web project 的区别
- CoreText实现图文混排之点击事件
- IoC框架
- window.location.href 在IE不跳转的解决方法
- Android中使用自定义View实现shape图形绘制