CIFilter (模糊图片)
2016-02-21 18:47
218 查看
//使用模糊图片
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIImage *image = [UIImage imageNamed:@"qiaodan"];
//coreImage
CIImage *ciImage = [[CIImage alloc] initWithImage:image];
CIFilter *blurFilter = [CIFilter filterWithName:@"CIGaussianBlur"];
//设置模糊程度
[blurFilter setValue:@(2) forKey:@"inputRadius"];
//查询滤镜设置参数的信息
NSLog(@"%@",[blurFilter attributes]);
//将图片输入到滤镜中
[blurFilter setValue:ciImage forKey:kCIInputImageKey];
//将处理好的图片输出
CIImage *outCiImage = [blurFilter valueForKey:kCIOutputImageKey];
//CIContext
CIContext *context = [CIContext contextWithOptions:nil];
//获取CGImage句柄
CGImageRef outCGImage = [context createCGImage:outCiImage fromRect:[outCiImage extent]];
//最终获取到图片
UIImage *blurImage = [UIImage imageWithCGImage:outCGImage];
//释放CGImage句柄
CGImageRelease(outCGImage);
//图片初始化
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 640/2.f, 640/2.f)];
imageView.image = blurImage;
imageView.center = self.view.center;
[self.view addSubview:imageView];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIImage *image = [UIImage imageNamed:@"qiaodan"];
//coreImage
CIImage *ciImage = [[CIImage alloc] initWithImage:image];
CIFilter *blurFilter = [CIFilter filterWithName:@"CIGaussianBlur"];
//设置模糊程度
[blurFilter setValue:@(2) forKey:@"inputRadius"];
//查询滤镜设置参数的信息
NSLog(@"%@",[blurFilter attributes]);
//将图片输入到滤镜中
[blurFilter setValue:ciImage forKey:kCIInputImageKey];
//将处理好的图片输出
CIImage *outCiImage = [blurFilter valueForKey:kCIOutputImageKey];
//CIContext
CIContext *context = [CIContext contextWithOptions:nil];
//获取CGImage句柄
CGImageRef outCGImage = [context createCGImage:outCiImage fromRect:[outCiImage extent]];
//最终获取到图片
UIImage *blurImage = [UIImage imageWithCGImage:outCGImage];
//释放CGImage句柄
CGImageRelease(outCGImage);
//图片初始化
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 640/2.f, 640/2.f)];
imageView.image = blurImage;
imageView.center = self.view.center;
[self.view addSubview:imageView];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
相关文章推荐
- js常用功能工具库--Underscore.js
- os_core.c
- 默认参数和占位参数
- static静态变量分析
- 执行shell脚本提示“syntax error near unexpected token for((i=0;i<$length;i++))”
- python的列表,元组和字典简单介绍
- 【小镇的技术天梯】Scapy学习日记(三)
- 操作系统(死锁)
- LeetCode OJ - Search for a Range
- 深入浅出-iOS的TCP/IP协议族剖析&&Socket
- Redis消息队列发布微博
- os_prio.c
- 1029. 旧键盘(20)
- javascript之猜数小游戏
- 一种简单的数字图像复制粘贴(Copy—Move)检测
- deque双向队列(转)
- iOS中Container View Controller的使用
- Android之Spinner选中列表数据不显示数据问题
- Linux Hook 笔记
- Ready List