home > April 2013

[Objective-C] CIFilter

April 24, 2013

iOS5から使えるようになったCIFilterを使った簡単な画像加工

// ソース画像を準備
UIImage *source = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle]
pathForResource:@"IMG_0001" ofType:@"JPG"]];
CIImage *filteredImage = [[CIImage alloc] initWithCGImage:source.CGImage];

// CIFilterを作成し、ソース画像とエフェクトのパラメータをセットする
CIFilter *filter = [CIFilter filterWithName:@"CIVignette"];
[filter setValue:[NSNumber numberWithFloat:1.0] forKey:@"inputIntensity"];
[filter setValue:[NSNumber numberWithFloat:2.0] forKey:@"inputRadius"];
[filter setValue:filteredImage forKey:@"inputImage"];
// 結果を取り出す
filteredImage = filter.outputImage;

/*
// CIFilterはチェーンが可能。コメント外すとCIVignetteが二重にかかる
[filter setValue:filteredImage forKey:@"inputImage"];
filteredImage = filter.outputImage;
*/

// CIImageをUIImageに変換する
CIContext *ciContext = [CIContext contextWithOptions:nil];
CGImageRef imageRef = [ciContext createCGImage:filteredImage fromRect:[filteredImage extent]];
UIImage *outputImage = [UIImage imageWithCGImage:imageRef scale:1.0f orientation:UIImageOrientationUp];
CGImageRelease(imageRef);

// 表示
UIImageView *imageView = [[UIImageView alloc] initWithFrame:self.view.bounds];
imageView.contentMode = UIViewContentModeScaleAspectFit;
[imageView setImage:outputImage];

[self.view addSubview:imageView];

参考サイト
http://qiita.com/items/6dc6e1d67cbd58cb2318
http://d.hatena.ne.jp/shu223/20111117/1321496682
http://hamken100.blogspot.jp/2011/12/ios5cifilter.html
http://news.mynavi.jp/column/objc/071/index.html


Permalink | Comments (0)

[Objective-C] 他クラスのメソッドを呼ぶ時

action.mファイル
kekka *viewController = [[kekka alloc] initWithNibName:@"kekka" bundle:nil];

kekka.mファイル

- (void)showNext
{
NSLog(@"showNext");
}

action.mからkekka.mのshowNextにアクセスする場合
[viewController showNext];
とかきます。


Permalink | Comments (0)