您的位置:首页 > 移动开发 > IOS开发

IOS 使用CoreImage实现图片模糊效果

2015-05-27 18:55 627 查看
//原始图片
UIImage*image = [UIImage imageNamed:@"sourceImage.jpg"];
/*.....coreImage部分....*/
//CIImage(图片输入源类似于UIImage)
CIImage *ciImage = [[CIImage alloc]initWithImage:image];
//CIFilter(滤镜)CIGaussianBlue是一款滤镜名字
CIFilter *blurFilter = [CIFilter filterWithName:@"CIGaussianBlur"];
//将图片输入到滤镜中
[blurFilter setValue:ciImage forKey:kCIInputImageKey];
//设置模糊长度(不模糊为0,模糊最大为100)
[blurFilter setValue:@(0) forKey:@"inputRadius"];
//将处理好的图片输出
CIImage *outCiImage = [blurFilter valueForKey:kCIOutputImageKey];
//输入该滤镜中所有可以设置的参数以及相关的信息
NSLog(@"%@",[blurFilter attributes]);
//CIContext(CIImage的操作句柄)nil表示默认有CPU渲染图片(如果让GPU渲染提高效率,则应设置contextWithOptions的字典数据)
CIContext *context = [CIContext contextWithOptions:nil];
//获取CGImage句柄
CGImageRef outCGImage = [context createCGImage:outCiImage
fromRect:[outCiImage extent]];
//最终获取到图片
UIImage *blurImage = [UIImage imageWithCGImage:outCGImage];
//释放CGImage句柄
CGImageRelease(outCGImage);
/*.........................*/
//初始化ImageView
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(10,10,300,300)];
//  imageView.backgroundColor = [UIColor redColor];
imageView.image = blurImage;
imageView.center = self.view.center;
[self.view addSubview:imageView];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: