美文网首页
iOS 生成二维码

iOS 生成二维码

作者: 和谐共处 | 来源:发表于2018-03-01 15:14 被阅读14次

使用CIFilter来生成二维码图像

/**
 *  生成一张普通的二维码
 *  @param data    传入你要生成二维码的数据
 */
+ (UIImage *)generateWithDefaultQRCodeData:(NSString *)data {
    // 1、创建滤镜对象
    CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
    
    // 恢复滤镜的默认属性
    [filter setDefaults];
    
    // 2、设置数据
    NSString *info = data;
    // 将字符串转换成
    NSData *infoData = [info dataUsingEncoding:NSUTF8StringEncoding];
    
    // 通过KVC设置滤镜inputMessage数据
    //key打印filter.inputKeys可以获取
    [filter setValue:infoData forKeyPath:@"inputMessage"];
    
    // 3、获得滤镜输出的图像
    CIImage *outputImage = [filter outputImage];
    
    
  // 4、放大20倍,因为CIFilter生成的CIImage的大小位27x27可打印
  //outputImage.extent查看大小
    outputImage = [outputImage imageByApplyingTransform:CGAffineTransformMakeScale(20, 20)];
    return [UIImage imageWithCIImage:outputImage];
}

iOS常用滤镜参考

https://developer.apple.com/library/content/documentation/GraphicsImaging/Reference/CoreImageFilterReference/index.html#//apple_ref/doc/filter/ci/CIQRCodeGenerator

相关文章

网友评论

      本文标题:iOS 生成二维码

      本文链接:https://www.haomeiwen.com/subject/rxggxftx.html