Last active
December 12, 2015 02:38
-
-
Save kasajei/4700444 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
double photoSize = 640; | |
// フィルターの設定 | |
//// まずフィルターグループを作る。フィルターを一つにまとめることで、あとで画像をつくるときに全部のフィルターがかかった画像が得られる | |
self.filterGroup = [[GPUImageFilterGroup alloc] init]; | |
//// 最初のフィルター便宜的に | |
GPUImageFilter *firstFilter = [[GPUImageCropFilter alloc] initWithCropRegion:CGRectMake(0, 0.125f, 1.0f, 0.75f)]; | |
[self.filterGroup addFilter:firstFilter]; | |
// 変更を加えるところ------------------------------------------- | |
GPUImageGrayscaleFilter *grayScale = [[GPUImageGrayscaleFilter alloc] init]; | |
[self.filterGroup addTarget:grayScale]; | |
_selectiveColorFilter = [[GPUImageSelectiveColorFilter alloc] init]; | |
[self.filterGroup addTarget:_selectiveColorFilter]; | |
GPUImageLightenBlendFilter *lightenBlend = [[GPUImageLightenBlendFilter alloc] init]; | |
[self.filterGroup addTarget:lightenBlend]; | |
//------------------------------------------- | |
//// 最後のフィルター便宜的に | |
GPUImageFilter *endFilter = [[GPUImageFilter alloc] init]; | |
[endFilter forceProcessingAtSize:CGSizeMake(photoSize, photoSize)]; | |
[self.filterGroup addFilter:endFilter]; | |
// フィルターグループの設定 | |
//// フィルターグループでオリジナルの画像をinputとして持つフィルターを設定する | |
[self.filterGroup setInitialFilters:@[firstFilter]]; | |
//// 一番最後のフィルターを設定する | |
[self.filterGroup setTerminalFilter:endFilter]; | |
// フィルター構成 | |
// 変更を加えるところ------------------------------------------- | |
// ファーストフィルター → グレイスケール | |
[firstFilter addTarget:grayScale]; | |
// ファーストフィルター → 赤色抽出フィルター | |
[firstFilter addTarget:_selectiveColorFilter]; | |
// ファーストフィルター → 赤色抽出フィルター ↓ | |
[_selectiveColorFilter addTarget:lightenBlend atTextureLocation:1]; // こっちが上 | |
// ファーストフィルター → グレイスケール → ライトブレンド | |
[grayScale addTarget:lightenBlend]; // こっちが下 | |
// ファーストフィルター → 赤色抽出フィルター ↓ | |
// ファーストフィルター → グレイスケール → ライトブレンド → エンドフィルター | |
[lightenBlend addTarget:endFilter]; | |
//------------------------------------------- | |
// フィルター構成終わり | |
[endFilter addTarget:self.imageView]; | |
// 最後にフィルターグループをカメラにくっつける | |
[self.stillCamera addTargets:self.filterGroup]; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment