您的位置:首页 > 其它

改变图片的饱和度、亮度、对比度

2016-01-04 15:51 435 查看
- (void)viewDidLoad {

    [super viewDidLoad];

    UIImage *image = [UIImage imageNamed:@"默认@2x"];

    CIImage *beginImage = [CIImage imageWithCGImage:image.CGImage];

    CIFilter *filter = [CIFilter filterWithName:@"CIColorControls"];

    [filter setValue:beginImage forKey:kCIInputImageKey];

    //饱和度  0 -- 2

    [filter setValue:[NSNumber numberWithFloat:0.5] forKey:@"inputSaturation"];

    //亮度   -1 --- 1

    [filter setValue:[NSNumber numberWithFloat:0.5] forKey:@"inputBrightness"];

    //对比度  0 --- 4

    [filter setValue:[NSNumber numberWithFloat:2] forKey:@"inputContrast"];

    

    //得到过滤后的图片

    

    CIImage *outputImage = [filter outputImage];

    //转换图片,创建基于GPU的CIContext对象

    CIContext *context = [CIContext contextWithOptions:nil];

    CGImageRef cgimg = [context createCGImage:outputImage fromRect:[outputImage extent]];

    UIImage *newImg = [UIImage imageWithCGImage:cgimg];

//    float value = [UIScreen mainScreen].brightness;

////    NSLog(@"获取手机屏幕亮度%f",value);

//    [[UIScreen mainScreen] setBrightness:0.7];

//    NSLog(@"获取手机屏幕亮度%f",value);

    

    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 20, self.view.frame.size.width, 170)];

    [self.view addSubview:imageView];

    imageView.image = newImg;

    

    

}

- (void) imageBrighter{

    NSArray *cifilter = [CIFilter filterNamesInCategory:kCICategoryBuiltIn];

    

    NSLog(@"FilterName:\n%@,,,===%ld", cifilter,cifilter.count);//显示所有过滤器名字

    

    for (NSString *filterName in cifilter) {

        

        CIFilter *fltr = [CIFilter filterWithName:filterName];//用一个过滤器名字生成一个过滤器CIFilter对象

        

        NSLog(@"%@:\n%@", filterName, [fltr attributes]);//这个过滤器支持的属性

        

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: