最新の記事アプリケーションアクティビティ、インテント、サービスについてデバイスAndroidでのデバイス制御について。地磁気センサ、加速度センサなどマルチメディアグラフィックス、音楽や動画再生などマルチメディア処理についてユーザインターフェースAndroidのユーザインターフェイスについて、またユーザインターフェイスを提供するコンポーネントの話題について。リソースAndroidでのアイコン、画像、文字列、ローカライゼーションなどHacksマッシュアップ開発環境Androidの開発環境など。コメントはまだありませんAndroidのカメラ機能を活用し、リアルタイムに画像処理をしてみましょう。SDKでカメラを扱うにはandroid.hardware.cameraパッケージを利用します。cameraパッケージではカメラからの入力映像をそのまま簡単に画面に表示する「プレビュー」機能があります。画像を編集する前段階として、プレビュー画面に表示したカメラ画像をキャプチャする方法を紹介します。Demos内でカメラ機能について纏まっていますので、このGraphics/CameraPreview.javaをベースに改造を加えていきましょう。サンプルではプレビューしている画像データをキャプチャ、保存する機能を追加します。http://techbooster.org/andriod/device/362/パーミッションの設定カメラ機能を利用するにはパーミッションの設定が必要です。android:name=&quot;android.permission.WRITE_EXTERNAL_STORAGE&quot;/&gt;...省略...&lt;/manifest&gt;カメラ機能を利用する権限を取得するため、7行目にuses-permission要素を追加しています。このサンプルでは外部ディスクへのデータ保存を行うため、WRITE_EXTERNAL_STORAGEも付与しています。カメラ情報の取得カメラプレビューを表示するため、ActivityのonCreateメソッド内でカメラ数の取得や利用するカメラの種類(フロントカメラ・バックカメラ)など初期設定を行います。}10行目のPreviewクラスはApiDemosのGraphics/CameraPreview.java内にあるカメラプレビュー用のクラスです。カメラ制御にかかわる機能がまとめられており、11行目のsetContentViewメソッドの引数にできるように、Viewクラスを継承しています。CameraクラスのgetNumberOfCamerasメソッドでAndroid端末のカメラ数を取得し、20行目でバックカメラを探しますカメラリソースの取得と解放カメラリソースの取得/解放は、onResumeメソッドとonPauseメソッドで行います。まれに、デバッグ中に強制終了した場合、リソースを解放できずにリソースを再取得できないケースがあります。リソース取得/解放ができていないと不具合に繋がるため、Tipsとして覚えておくとよいでしょう。最悪、Android端末の再起動が必要になります。mCameraインスタンスはandroid.hardware.Cameraクラスです。mCameraがnullでなければリソースを取得していますので、必ずonPause時に解放(Releaseメソッド)するようにしましょう。最後に、プレビュー画像を取得するためにPreviewクラスを変更します。画像データを取得するtakePreviewRawDataメソッドを作成します。CameraクラスのsetPreviewCallbackメソッドはプレビューする度に呼ばれるコールバックメソッドです。PreviewCallbackを設定すると、毎プレビューごとに画像データを取得できます。以下のサンプルコードは、プレビュー時のコールバックの内容になります。editPreviewImage内部の処理で画像を保存しています。保存した画像はjpegなど一般的なフォーマットではなく、搭載されたカメラ制御デバイスに依存し、YUVデータなどハードウェアデバイスごとに最適化された生データになります。arcなどはYUVデータですが、色の格納順番が異なります)になります。};5行目、処理を継続しない場合は、コールバックを解除しておくといいでしょう。今回は一度かぎりの実行ということでsetPreviewCallbackメソッドにnullを設定します。7行目から25行目にかけてプレビューを一端停止~画像処理~プレビュー再開します。プレビュー表示中に画像データ(onPreviewFrameメソッドの第1引数data)を編集すると、描画が乱れるためです。以上で画像データの取得は完成です。Authormhidakaエンジニア。Androidと組込とRe:VIEW。techbooster主催。ひつじと呼ばれてます。2.0(β)に対応した解説書です。TechBooster.TechBoosterについて。