36、[ iOS ] 生成二维码 系统方法

    // 1.实例化二维码滤镜
    CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
    
    // 2.恢复滤镜的默认属性 (因为滤镜有可能保存上一次的属性)
    [filter setDefaults];
    
    // 3.将字符串转换成NSdata
    NSString *urlString = @"www.baidu.com";
    NSData *data  = [urlString dataUsingEncoding:NSUTF8StringEncoding];
    
    // 4.通过KVO设置滤镜, 传入data, 将来滤镜就知道要通过传入的数据生成二维码
    [filter setValue:data forKey:@"inputMessage"];
    
    // 5.生成二维码
    CIImage *outputImage = filter.outputImage;
    CGFloat scale = CGRectGetWidth(QRCodeView.bounds) / CGRectGetWidth(outputImage.extent);
    CGAffineTransform transform = CGAffineTransformMakeScale(scale, scale); // scale 为放大倍数
    CIImage *transformImage = [outputImage imageByApplyingTransform:transform];
    
    // 保存
    CIContext *context = [CIContext contextWithOptions:nil];
    CGImageRef imageRef = [context createCGImage:transformImage fromRect:transformImage.extent];
    UIImage *qrCodeImage = [UIImage imageWithCGImage:imageRef];
    
    // 6.设置生成好得二维码到imageView上
    imageView.image        = qrCodeImage;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 项目中要添加扫码功能。虽然网上已经有很多Demo,但还是想自己好好看看系统文档,亲自踩下坑。将学习过程记录下。De...
    小巷深深阅读 5,093评论 1 0
  • 相信很多人在生成二维码的时候会发现 如果把二维码的尺寸放大一些就会发现图片变得模糊了,那么看一下 生成二维码的时候...
    清蘂翅膀的技术阅读 8,603评论 0 0
  • 二维码的生成有好多第三方库,如Z-Xing。但是为了控制安装包的大小,或者并不需要其他的一些额外的功能,用系统的方...
    jeckHao阅读 2,890评论 0 1
  • 时间似乎过得特别快 一转眼,周二又结束了 你们,长进了一些些 有个老师说“你们班孩子太活跃了,真没办法看得住” 听...
    smile_轰轰阅读 1,449评论 0 0
  • 念数的时候,我最讨厌的就是做语文的阅读题,例如“……这句话作者想表达的含义是?”、某一段的中心思想、全文的中心思想...
    淡淡茶香阅读 2,726评论 0 0