【iPhone】GPUImageで「コントラスト、彩度、明るさ」を調整する方法

概要

GPUImageを使用して、画像の「コントラスト、彩度、明るさ」を調整する方法。
iPhoneで画像処理をする際の定番になりつつあるGPUImageです。
導入方法については他のブログを参照してください。
■GPUImage
https://github.com/BradLarson/GPUImage

方法

コントラスト(Contrast)
setする値は、0.0~4.0。ノーマルは1.0

GPUImagePicture *imagePicture = [[GPUImagePicture alloc] initWithImage:inputImage];
GPUImageContrastFilter *contrastFilter = [[GPUImageContrastFilter alloc] init];
// Contrast ranges from 0.0 to 4.0 (max contrast), with 1.0 as the normal level
[contrastFilter setContrast:2.0];
[imagePicture addTarget:contrastFilter];
[imagePicture processImage];
UIImage *outputImage = [contrastFilter imageFromCurrentlyProcessedOutput];

・彩度(Saturation)
setする値は、0.0~2.0。ノーマルは1.0

GPUImagePicture *imagePicture = [[GPUImagePicture alloc] initWithImage:inputImage];
GPUImageSaturationFilter *saturationFilter = [[GPUImageSaturationFilter alloc] init];
// Saturation ranges from 0.0 (fully desaturated) to 2.0 (max saturation), with 1.0 as the normal level
[saturationFilter setSaturation:2.0];
[imagePicture addTarget:saturationFilter];
[imagePicture processImage];
UIImage *outputImage = [saturationFilter imageFromCurrentlyProcessedOutput];

・明るさ(Brightness)
setする値は、-1.0~1.0。ノーマルは0.0

GPUImagePicture *imagePicture = [[GPUImagePicture alloc] initWithImage:inputImage];
GPUImageBrightnessFilter *brightnessFilter = [[GPUImageBrightnessFilter alloc] init];
// Brightness ranges from -1.0 to 1.0, with 0.0 as the normal level
[brightnessFilter setBrightness:0.5];
[imagePicture addTarget:brightnessFilter];
[imagePicture processImage];
UIImage *outputImage = [brightnessFilter imageFromCurrentlyProcessedOutput];

おすすめの書籍

Effective Objective-C 2.0

Effective Objective-C 2.0

定番のEffectiveシリーズ!