// 二维码的内容,NSData 格式,编码建议使用 NSIOSLatin1StringEncoding
NSData *contentData = [string dataUsingEncoding:NSISOLatin1StringEncoding];
// 使用 CIFilter 创建二维码
CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator" withInputParameters:@{@"inputMessage" : contentData, @"inputCorrectionLevel" : @"M"}];
// 输出图片数据,CIImage 格式
CIImage *image = filter.outputImage;
// 改尺寸
CGFloat width = CGRectGetWidth(image.extent);
CGFloat scale = 200 / width;
image = [image imageByApplyingTransform:CGAffineTransformMakeScale(scale, scale)];
// 图片上下文
CIContext *context = [CIContext contextWithOptions:nil];
// 输出图片数据,CGImage 格式,如果要将图片保存到本地,则需要创建 CGImage,否则保存失败
CGImageRef imageRef = [context createCGImage:image fromRect:image.extent];
// 将 CGImage 转为 UIImage
UIImage *QRCode = [UIImage imageWithCGImage:imageRef];
// 用完要释放内存,ARC 并不管理 C 类型的对象
CGImageRelease(imageRef);
// 显示
[self.view addSubview:[[UIImageView alloc] initWithImage:QRCode]];
QRCode
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 这几天感觉遇到了瓶颈。不仅工作上如此,生活和写作也是如此。 工作上遇到的一些事就不说了吧,只说说写作。 已经二十多...