iOS 生成二维码

###使用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

猜你喜欢

转载自my.oschina.net/hehuiqi/blog/1627172