1 @implementation NSString (Helper)
2
3 /**
4 返回当前字符串对应的二维码图像
5
6 二维码的实现是将字符串传递给滤镜,滤镜直接转换生成二维码图片
7 */
8 - (UIImage *)createQRCode
9 {
10 // 1. 实例化一个滤镜
11 CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
12 // 1.1 设置filter的默认值
13 // 因为之前如果使用过滤镜,输入有可能会被保留,因此,在使用滤镜之前,最好设置恢复默认值
14 [filter setDefaults];
15
16 // 2. 将传入的字符串转换为NSData
17 NSData *data = [self dataUsingEncoding:NSUTF8StringEncoding];
18
19 // 3. 将NSData传递给滤镜(通过KVC的方式,设置inputMessage)
20 [filter setValue:data forKey:@"inputMessage"];
21
22 // 4. 由filter输出图像
23 CIImage *outputImage = [filter outputImage];
24
25 // 5. 将CIImage转换为UIImage
26 return [UIImage imageWithCIImage:outputImage];
27 }
28
29 @end