【iOS開発 TIPS】iOS5のCIImage、CIFilterを試してみたよ。
どうもみなさまこんばんわ。お前のものはお前のもの、シブタニエイジ(@EijiShibutani)です。
こないだ「iOS Dev ハッカソン 関西」ってに参加しまして、そこでちょこちょこいじったCore ImageフレームワークのCIImage、CIFilterについて書きたいと思います。
ちぇっけなー。
CIImage、CIFilterって何よ?
iOS5 からCoreImageフレームワークが追加されました。その中に画像にエフェクトを簡単にかけられる機能があるんですね。
iOS5 っていうくらいだからすんごい昔のテクニックなんだけど、当時はまだiOS4使用率が高かったもんでスルーしてましたが、さすがにもういねーだろってことでこれからちょこちょこ使っていこうと思います。
ちなみに公式ドキュメント等はこちら。
使い方はこんな感じ
まずは【Link Binary With Libraries】に【CoreImage.framework】を追加してください。
んで、ファイルをインクルード。
#import <CoreImage/CoreImage.h>
これで準備は完了です。
で、画像をモノクロに変換するコードがこちら。
CIImage *ciImage = [[CIImage alloc] initWithImage:[UIImage imageNamed:@"xxxx.png"]]; //変換する画像ファイル名 CIFilter *ciFilter = [CIFilter filterWithName:@"CIColorMonochrome" //フィルター名 keysAndValues:kCIInputImageKey, ciImage, @"inputColor", [CIColor colorWithRed:0.75 green:0.75 blue:0.75], //パラメータ @"inputIntensity", [NSNumber numberWithFloat:1.0], //パラメータ nil ]; CIContext *ciContext = [CIContext contextWithOptions:nil]; CGImageRef cgimg = [ciContext createCGImage:[ciFilter outputImage] fromRect:[[ciFilter outputImage] extent]]; UIImage* monochroImage = [UIImage imageWithCGImage:cgimg scale:1.0f orientation:UIImageOrientationUp]; CGImageRelease(cgimg);
たったこれだけでモノクロに変換できちゃう!素敵!!
これを使用すれば、例えばゲームの「ゲームオーバー時」などで画面をモノクロにするなど、リッチな演出を簡単に加えることができちゃいますね。
例えばこんな感じ。まじゲームオーバー感。
当然、モノクロだけじゃなくて色々簡単に画像にエフェクトをかけられます。
以下参考にさせていただいた文献。あざます!!
- [iPhone] iOS5 Core Imageフレーワークの使い方 (CIImage、CIFilterのみ) - OneWorldの開発ブログ
- Core Image の全エフェクトを試せるサンプルコードを公開しました - Over&Out その後
え?なに?上の画像はなんだって?
おいおいおいー。やめろよー。詮索するなよー。おいー。今作ってるアp … おいおいー。やめろってー。
□
コホン。以上です。チャオ!
今日の一言
@eijishibutani GPUImageご存知? github.com/BradLarson/GPU…
— Sumihiro Ueda/上田澄博 ✅さん (@sumihiro) 2013年4月8日
まじかー!こんなんあったんかー!スミヒロさんからリプいただきました。なんかこっちの方が色々できそうな予感。でも文献少ないんだよなー。今度じっくりいじってみよう。
