CoreImage是苹果公司为了简化图片处理的难度而开发出来的类库。
随着iOS版本升级以及硬件性能的不断提升,CoreImage将支持越来越多的滤镜。
大部分的滤镜都很容易使用。
// 0. 导入CIImage图片
CIImage *ciImage = [[CIImage alloc] initWithImage:[UIImage imageNamed:@"demo"]];
// 1. 创建出Filter滤镜
CIFilter *filter = [CIFilter filterWithName:@"CIPixellate"];
[filter setValue:ciImage
forKey:kCIInputImageKey];
NSLog(@"%@", filter.attributes);
[filter setDefaults];
CIImage *outImage = [filter valueForKey:kCIOutputImageKey];
// 2. 用CIContext将滤镜中的图片渲染出来
CIContext *context = [CIContext contextWithOptions:nil];
CGImageRef cgImage = [context createCGImage:outImage
fromRect:[outImage extent]];
// 3. 导出图片
UIImage *showImage = [UIImage imageWithCGImage:cgImage];
CGImageRelease(cgImage);
// 4. 加载出来
UIImageView *imageView = [[UIImageView alloc] initWithImage:showImage];
imageView.center = self.view.center;
[self.view addSubview:imageView];