Mobile:NEWS 2003年8月18日 09:08 PM 更新

エンタメiアプリを作ろう
第1回 カメラを使ってみよう!

504iSから505iまで、ドコモの携帯電話で動作するiアプリの開発方法を全6回の連載でお届けする。第1回は、iアプリからカメラを操作する方法を学ぶ。

 皆さんはじめまして。「エンタメアプリをつくろう」の連載開始です。この連載では、ドコモの携帯電話で動作するエンタメ系iアプリの開発を、カメラなど新機能の使い方を交えながら紹介していきます。

 最近の携帯はカメラ付きが当たり前になってきました。本連載では、まずカメラを使ったエンタメアプリの作り方から入ろうと思います。

 カメラを使ったアプリということで、まず必要なことはズバリ、カメラの操作。これがなければはじまりません。まずはカメラで画像を撮る部分を実際にアプリで作ってみましょう。簡単なiアプリ版カメラの作成です。

 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(らっぷる)の代表。ゲームなどエンタメ系アプリが主体だがビジネス系アプリの開発も行っており、現在は公式サイトのアプリ開発に携わっている。



関連記事
▼ ドコモ、505iのJava仕様〜DoJa3.0を公開
505iのJava仕様が公開された。スクラッチパッドサイズが拡大されるほか、端末情報の取得、ネイティブアプリケーションとの連携が可能になる。iアプリから別のiアプリを呼び出すこともできる。ただし「iアプリDX」は、公式プロバイダのみが利用できるとされ、詳細は明かされていない

▼ 504iの各種仕様が公開──iアプリの待ち受けが可能に
発表間近と見られるドコモの新端末「504iシリーズ」のWebやJava仕様が公開された。WebではJPEGを標準サポート、絵文字も追加された。Javaでは待ち受けiアプリが可能になったほか、赤外線通信をiアプリから利用できるようになっている。また、端末情報の取得なども制限が緩和された。

▼ ドコモ四国、第2回iアプリコンテスト
ドコモ四国はiアプリおよび、505iで動作するFlashコンテンツのコンテストを開催する。


関連リンク
▼ 第2回ドコモ四国iアプリコンテスト
▼ NTTドコモ四国
▼ アプリ★ゲット

[Rapl 寺田雄一, ITmedia]

Copyright © ITmedia, Inc. All Rights Reserved.



モバイルショップ

最新スペック搭載ゲームパソコン
高性能でゲームが快適なのは
ドスパラゲームパソコンガレリア!

最新CPU搭載パソコンはドスパラで!!
第3世代インテルCoreプロセッサー搭載PC ドスパラはスピード出荷でお届けします!!