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