【特集】

Core Imageで体験 - Mac OS Xの高速画像処理

8 Rippleトランジションにもトライ

    木下誠  [2006/05/31]

    もう少し複雑なフィルタも試してみよう。トランジションフィルタの1つ、Rippleフィルタだ。波紋のようなトランジションエフェクトを作成する。

        // CIImageのインスタンスを作成する
        CIImage* inputImage;
        CIImage* inputTargetImage;
        CIImage* inputShadingImage;
        inputImage = [CIImage imageWithContentsOfURL:[NSURL fileURLWithPath:path]];
        inputTargetImage = [CIImage imageWithContentsOfURL:[NSURL fileURLWithPath:targetPath]];
        inputShadingImage = [CIImage imageWithContentsOfURL:[NSURL fileURLWithPath:shadingPath]];
        
        // フィルタを作成する
        CIFilter* filter;
        filter = [CIFilter filterWithName:@"CIRippleTransition"];
        // 入力パラメータをデフォルト値にする
        [filter setDefaults];
        
        // 入力画像を設定する
        [filter setValue:inputImage forKey:@"inputImage"];
        // ターゲット画像を設定する
        [filter setValue:inputTargetImage forKey:@"inputTargetImage"];
        // 環境マップ画像を設定する
        [filter setValue:inputShadingImage forKey:@"inputShadingImage"];
        // トランジションが起きる領域を設定する
        [filter setValue:[CIVector vectorWithX:0 Y:0 Z:479 W:360] forKey:@"inputExtent"];
        // 波紋の中心を設定する
        [filter setValue:[CIVector vectorWithX:240 Y:180] forKey:@"inputCenter"];
        // トランジションの時間を設定する
        [filter setValue:[NSNumber numberWithFloat:0.4f] forKey:@"inputTime"];

    このフィルタでは、入力画像が3つになる。まず、トランジションは、ある画像から別の画像へと変遷するものなので、オリジナルとターゲットの2枚の画像が必要になる。もう1つは、波紋を描くときに使われる、アルファ値を含む環境マップ画像だ。

    これに加えて、トランジションの領域、波紋の中心点を設定する。これらの座標や領域は、CIVectorクラスを使って指定する。CIVectorでは、1次元から4次元までのベクトルを指定可能だ。

    最後のトランジションの時間で、0.0から1.0の間で、変遷の度合いを設定する。この値を変化させながら連続して画像を表示すれば、トランジションアニメーションを作ることができる訳だ。

    Ripple動作図

    Rippleソースコード

    対応機種も出そろい、これからに期待

    このように、Core Imageを使ったプログラミングは、少ない手間で、とても「派手」な効果を得ることができる。

    その反面、Core Imageプログラミングの悩みの種は、対応機種が限られてしまうことだろう。登場当初は、ハイエンド機しか対応を行っていなかった。しかし、Tigerもリリースから1年近くがたち、現行販売されているほとんどの機種で対応するようになってきた。

    Apertureのような本格的なソフトも登場し、Core Imageはまさにこれから活躍のときを迎えるだろう。

    新着記事

    特設サイトの情報

      人気記事

      一覧

        イチオシ記事

        新着記事

        特別企画

        マイナビニュースマガジン