QRCode


// 二维码的内容,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]];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 目录: 前置知识 encode decode 有任何问题和指导建议,可以联系我讨论:guchenhui1993@g...
    欧祎阅读 11,053评论 3 16
  • 时间是一把戳穿虚伪的刀,它验证了谎言,揭露了现实,淡化了承诺,你只要问心无愧的做人,一切自有命运安排。 当你感觉被...
    梦雅星辰阅读 239评论 0 1
  • 上线了「专题推荐」栏目,正式推出「专题」这种全新的内容组织、沉淀和展现形式 专题暂时只能由简书的编辑们创建 您可以...
    简书阅读 637评论 0 3
  • 这几天感觉遇到了瓶颈。不仅工作上如此,生活和写作也是如此。 工作上遇到的一些事就不说了吧,只说说写作。 已经二十多...
    我是叶翕阅读 250评论 0 1
  • 大学生即将步入新学期的假期——国庆节。 大学生,在中国,是一群独立于社会中的简约版人群。他们的日常生活都是社会的缩...
    飘渺之旅的电影阅读 354评论 0 2