BAD_ACCESS

おもにiOS、ときどき変な電子工作、ガジェット話。

#10 使えるエフェクトはまだ限られているーC4でエフェクト付きカメラをつくる(2)

この記事は「一人アドベントカレンダー2013〜Lonely Advent Calender 2013〜」の11日目の記事です。

前回はわずか数行でハードウェアのカメラを使ったアプリを実装できるという例を紹介しました。

今回、カメラに使うエフェクトを紹介しようと調べていたところ、まだ開発フェーズで使えるフィルタの種類が限られているようです。

適用できるフィルタとブレンド

C4で利用できるエフェクトにはフィルタともう一枚の画像をあわせて加工するブレンドの大きく二種類があります。

フィルタはパラメータを指定するだけのほんの一行です。 画像の色を逆にするのを試したければ、下記のコードを一行追加するだけで加工ができてしまいます。

[image colorInvert];

 2013-12-13 0.59.58.png 2013-12-13 1.00.17.png

しかしretinaの解像度で試すとうまくいかないという残念な結果になってしまいます。(iPadのnon-retinaのシミュレータではうまくいきます。) ※後日、ソースコードの中をのぞいて原因を探ってみます。

また、ブレンドも手軽です。

ブレンドするための二枚の画像を用意しておきます。  2013-12-13 0.59.58.png 2013-12-13 1.21.58.png

ブレンドする方法(ここではオーバーレイ)を選び、下記のコードだけで済んでしまいます。

-(void)setup {
    
    C4Image *sushi = [C4Image imageNamed:@"sushi"];
    sushi.center = self.canvas.center;
    C4Image *shine = [C4Image imageNamed:@"shine"];
    shine.alpha = 0.6f;
    [self.canvas addImage:sushi];
    
    [sushi overlayBlend:shine];
}

 2013-12-13 1.20.58.png

最後はえげつない画像になってしまいましたが、C4なら画像エフェクトもあまりにも簡単にできてしまいます。 今回紹介しきれなかった部分ではExamplesImage Filtersの部分に掲載されいているフィルターだと動くことが確認できています。ドキュメントに記載されいているフィルターはどうやらまだ開発をすすめている途中のようです。