ios开发 根据URL或字符串生成二维码
2017-05-31 16:04
537 查看
1.二话不说直接上代码
2.重绘方法
注:本文转载于其他博客,github地址:https://github.com/ZSyingyu/ZYYCodePayDemo.git
//1. 实例化二维码滤镜 CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"]; // 2. 恢复滤镜的默认属性 [filter setDefaults]; // 3. 将字符串转换成NSData NSString *urlStr = self.dataDic[@"shareurl"]; NSData *data = [urlStr dataUsingEncoding:NSUTF8StringEncoding]; // 4. 通过KVO设置滤镜inputMessage数据 [filter setValue:data forKey:@"inputMessage"]; // 5. 获得滤镜输出的图像 CIImage *outputImage = [filter outputImage]; // 6. 将CIImage转换成UIImage,并显示于imageView上 (此时获取到的二维码比较模糊,所以需要用下面的createNonInterpolatedUIImageFormCIImage方法重绘二维码) self.QRcodeContentImageView = [[UIImageView alloc] initWithFrame:CGRectMake((SCREEN_WIDTH-170)/2, CGRectGetMaxY(nameLabel.frame) + 10, 170, 170)]; self.QRcodeContentImageView.image = [self createNonInterpolatedUIImageFormCIImage:outputImage withSize:170];//重绘二维码,使其显示清晰 [self.view addSubview:self.QRcodeContentImageView];
2.重绘方法
/** * 根据CIImage生成指定大小的UIImage * * @param image CIImage * @param size 图片宽度 */ - (UIImage *)createNonInterpolatedUIImageFormCIImage:(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); return [UIImage imageWithCGImage:scaledImage]; }
注:本文转载于其他博客,github地址:https://github.com/ZSyingyu/ZYYCodePayDemo.git
相关文章推荐
- iOS笔记UI--生成二维码Demo(不是扫码,是根据字符串生成二维码)
- iOS根据URL生成二维码
- ios开发swift中字符串生成二维码
- iOS开发 - 二维码的生成与读取
- 学习iOS开发之生成二维码
- iOS开发 - 二维码的生成与读取
- IOS开发二维码生成及扫描ZBarDemo
- 【iOS开发】ZBar的使用:二维码的生成及扫描 —— 伊禾媛
- iOS开发-原生二维码的扫描和生成
- IOS 开发笔记——二维码的生成和扫描
- ios开发——生成二维码——工具类
- 使用genstring工具 生成国际化文件 ios开发 字符串国际化 工作技巧
- IOS 字符串生成二维码
- iOS开发swift如何将字符串生成mac的md5
- iOS开发-原生二维码的扫描和生成
- iOS开发——生成条形码,二维码
- iOS开发利用zbar实现二维码扫描(支持64位) 及二维码生成
- iOS开发之二维码的生成
- iOS开发大众点评URL签名生成规则和SHA-1编码
- 根据字符串生成指定二维码