Skip to content

Instantly share code, notes, and snippets.

@kasajei
Last active December 12, 2015 02:38
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kasajei/4700444 to your computer and use it in GitHub Desktop.
Save kasajei/4700444 to your computer and use it in GitHub Desktop.
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