2012年2月15日水曜日

Core Image について



Tiger (Mac OS X 10.4) で Core Video と同時に導入されたフレームワークのひとつに Core Image があります.Core Image が何をするものかは,Xcodeに付属する Core Image Fun House を起動してみるとよくわかります.

Core Image Fun House では静止画に様々なエフェクトをかけることができました.Core Image はこのように画像にエフェクト(フィルタ)をかける機能なのですが,実は Core Video と連動して動画にもエフェクトをかけることができます.

Core Image の実体はGPUで動作するフラグメントシェーダーのライブラリとそのプログラマ向けインタフェース(API)です.また OpenGL Shading Language (GLSL) のサブセットを使って独自のフィルタを追加することもできます.

ところで Core Image のAPIですが,Core Video と違ってどっぷり Objective-C スタイルです.これは言語が Objective-C というだけでなく,その設計思想もまた Objective-C スタイルだという意味です.

具体的には,フィルタクラス (CIFilter) に様々なパラメタを設定するのですが,その設定の仕方が NSDictionary スタイルの setValue: ... forKey: ... 形式ですし,なんとフィルタをかけたい画像もフィルタのパラメタとして設定します.

Core Video だけのプログラムでしたら,Cocoa部分はObjective-C,Core Video とOpenGL部分はCスタイルと分かれていましたが,Core Image が入ってくると画像を扱う部分もObjective-Cスタイルで書いていくことになりますね.(QuickTime Kit もObjective-Cスタイルです.)

0 件のコメント:

コメントを投稿