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
Tweet
[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];
とかきます。
Tweet