GPUImage for Androidを試してみた

GPUImageでiOSのカメラアプリを作るエントリーを読んでたら、GPUImage for Androidがあるとのことなのでサンプルを試してみた。

GPUImageで高速フィルター!iOSカメラアプリの作り方(まとめ・サンプルコードあり)
GPUImage for Android

サンプルコード

githubからcloneしたプロジェクトはmavenのプロジェクトになっているのだが、eclipseにインポートする際はAndroidのプロジェクトとしてインポートした。
どうもandroid-maven-pluginが上手く動いていないのか、SDKやNDKのパスが無いとか、maven installはできてもエラーのマークがプロジェクトから消えないとか、よく分からないのでeclipse上でのmavenは諦めた。
ここを参考に結構頑張ってみたけど。。。
EclipseでAndroidプロジェクトをMavenで管理するための環境構築 + Emacsキーバインドの設定 (2012年版)

Androidのプロジェクトとしてインポートしたら、コマンドラインでlibraryを

mvn clean install

して、サンプルプロジェクトをeclipseから実行すればよい。
ビルド時にminSDKのAPI levelが低いと怒られるので、AndroidManifest.xmlのAPI levelを14に修正した。

手元に開発機がなかったのでエミュレータを使ったら、実行時にsoがloadできないと言われてしまってちょっとハマった。
高速化用のIntel版のイメージを使ってたせいで、armビルドしたsoはloadできないのだった。
当たり前っちゃ当たり前なんだけど、普段エミュレータなんてほとんど使わないせいですっかり頭から抜け落ちていた。
arm版のイメージのエミュレータだとOpen GL 2.0がサポートされてないようなので、libraryをx86用にビルドすることにした。

ndk-build APP_ABI=x86

これでx86用にビルドしなおして実行したところエミュレータでもリアルタイムにフィルターが掛かるサンプルが動いた。
device-2013-02-03-005409
端末の向きを90度回転すると何故か上下逆になってしまうので縦のままw
フィルターは「Grouped Filters」を選択している。

フィルターを作ってみたいからフィルターのソース読んでOpenGLを勉強してみようかな。

%d人のブロガーが「いいね」をつけました。