iOS 生成二维码
2018-03-01 本文已影响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];
}