エンタメiアプリを作ろう
|
撮影前 | 撮影後 |
カメラ制御には504iSで追加されたAPIのCameraクラスを使います。これはオプションパッケージ「com.nttdocomo.opt.ui.Camera」になります。
カメラオブジェクトの生成
カメラの制御を行うにはまずカメラデバイスに対応するカメラオブジェクトを生成する必要があり、そのカメラオブジェクトの生成はgetCamera()メソッドを使います。
getCamera()メソッドではカメラIDを指定することで対応するカメラデバイスのカメラオブジェクトを生成することができます。カメラIDはカメラデバイスの番号(0から連番)になっています。P504iSのようなツインカメラの場合、カメラIDに1を設定することで2カメのカメラオブジェクトの生成も可能です。
//カメラオブジェクト生成
try {
Camera camCamera=Camera.getCamera(0);
} catch (Exception e) {
//エラー処理
}
実際に写真を撮ってみよう!
カメラオブジェクトの生成が無事完了すれば撮影の準備は完了です。これで写真の撮影ができるようになります。実際カメラを起動してみましょう。カメラの起動はtakePicture()メソッドを使います。
takePicture()メソッドを行う前に撮影のサイズを指定してみましょう。ここではishot(s)のサイズ120×120のサイズ固定の写真を撮ってみます。撮影サイズの設定はsetImageSize()メソッドを使って変更できます。
※サイズの指定は各携帯電話でサポートしていない場合、各携帯電話で自動的にサポートされているサイズになります。例えばN504iSの場合、ishot(s)のサイズが144×144になっています。
//カメラ撮影
try {
//撮影サイズ指定
camCamera.setImageSize(120,120);
//カメラ起動
camCamera.takePicture();
} catch (Exception e) {
//エラー処理
}
ここではカメラで撮影しないでキャンセルするケースが想定されます。この場合、画像がないとこの後のカメラ画像の取得で問題が生じますので、チェックを行う必要があります。撮影されているかを確認する方法の一つとしてgetNumberOfImages()メソッドがあります。これはカメラオブジェクトに保存されている画像の数を取得できます。
//カメラ撮影
try {
//撮影サイズ指定
camCamera.setImageSize(120,120);
//カメラ起動
camCamera.takePicture();
//撮影チェック
if (camCamera.getNumberOfImages()==0) {
//撮影されていない場合の処理
}
} catch (Exception e) {
//エラー処理
}
撮影した写真をイメージとして取得
takePicture()メソッドで撮影した画像はカメラオブジェクトに保存されています。これを表示するためにはイメージとして取得しないといけません。そこでMediaImageとして取得してImageオブジェクトに保存してみましょう。ここではgetImage()メソッドを使用します。
try {
//撮影画像をImageとして生成
MediaImage media=camCamera.getImage(0);
media.use();
Image imgCamera=media.getImage();
} catch (Exception e) {
//エラー処理
}
※getImageのindexは基本的に0を指定します。連写モード等の場合に複数枚の写真が保存される場合があり、その場合にindexを指定します。
写真を画面に表示してみよう!
イメージオブジェクトとして撮影した写真を実際に表示してみましょう。これで簡単なiアプリ版カメラの完成です。
505iでは動かない?
ここでは504iSでのiアプリカメラの作成について解説しましたが、505iでこのアプリを実行しても正常に動作しません。やはり最新機種の505iシリーズ対応はしておきたいものですね。505iシリーズへのパワーアップは連載中に用意していますのでお楽しみに。
iアプリ版カメラのソースはこちらです。
著者紹介 寺田雄一:携帯電話向けアプリの開発を行うRapl(らっぷる)の代表。ゲームなどエンタメ系アプリが主体だがビジネス系アプリの開発も行っており、現在は公式サイトのアプリ開発に携わっている。 |
[Rapl 寺田雄一, ITmedia]
Copyright © ITmedia, Inc. All Rights Reserved.
最新スペック搭載ゲームパソコン
高性能でゲームが快適なのは
ドスパラゲームパソコンガレリア!
最新CPU搭載パソコンはドスパラで!!
第3世代インテルCoreプロセッサー搭載PC ドスパラはスピード出荷でお届けします!!