iOS原生代码生成二维码 条形码

效果图:


图1 点击图中按钮 生成二维码
图2 生成二维码

核心代码:

- (UIImage *)createQRCodeOrBarCode:(BOOL)QROrBar code:(NSString *)code width:(CGFloat)width height:(CGFloat)height {
    if (!code || code.length == 0) {
         //code为nil, 不能生成二维码
        //code为@“”,可生成二维码,但扫描结果为:(null),无意义
        return nil;
    }
    CIImage *returnImage;
    NSData *data = [code dataUsingEncoding:NSISOLatin1StringEncoding allowLossyConversion:NO];
    CIFilter *filter;
    if (QROrBar) {
        // 生成条形码
        //创建滤镜,对图像进行滤镜处理
        filter = [CIFilter filterWithName:@"CICode128BarcodeGenerator"];
        [filter setValue:data forKey:@"inputMessage"];
        returnImage = [filter outputImage];
    } else { 
        // 生成二维码
        filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
        [filter setValue:data forKey:@"inputMessage"];
        [filter setValue:@"H" forKey:@"inputCorrectionLevel"];
        returnImage = [filter outputImage];
    }
    //1.保持模糊效果
    return [UIImage imageWithCIImage:returnImage];
    /**
     // 2.消除模糊, extent 返回图片的frame
     CGFloat scaleX = width / returnImage.extent.size.width;
     CGFloat scaleY = height / returnImage.extent.size.height;
     CIImage *transformedImage = [returnImage imageByApplyingTransform:CGAffineTransformScale(CGAffineTransformIdentity, scaleX, scaleY)];
     return [UIImage imageWithCIImage:transformedImage];
     */
}

测试:


图3 按钮点击事件
图4 关联imageView属性
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,292评论 25 708
  • 文章来自:http://blog.csdn.net/mj813/article/details/52451355 ...
    好大一只鹏阅读 9,215评论 2 126
  • 今天整理的成果: 1.厨房。 确切讲是昨天晚饭后花约半小时把厨房整理完毕。包括洗碗,擦台面,水池,窗台,擦地。今天...
    清月倾城阅读 481评论 1 15
  • 如今我已是一名大二的学生,大学是一个小社会,不错,负责的人际交往有时候会让你感到很难受,可是还是不得不面对。 有些...
    城市上空的星星阅读 554评论 0 0
  • 想表达下一家人 在现代生活中的日子。 他所向往的生活 相对现实点 一,现在买得起小别墅的人不多 二,现在这个年纪应...
    余小媮阅读 75评论 0 0