Mobile:NEWS |
2003年8月22日 06:29 PM 更新
|
エンタメiアプリを作ろう
第2回 写真を保存してみよう
前回作成したiアプリ版カメラソフトに保存機能を実装する方法を説明する。
前回までのiアプリ版カメラソフトでは、撮影画像をイメージとして取得し、画面に表示する方法を説明しました。第2回はデータとして取得し、それをスクラッチパッドに保存する機能を実装し、撮影画像の保存と読み込み処理を説明します。
この機能の実装することで、例えば別の場所で撮影した写真を、後で読み込んでほかの人に見せることができるようになったり、撮影画像を使ったゲームを作ったりできるようになります。
では、保存・読込みについてまとめてみましょう。
撮影した画像をスクラッチパッドに保存
カメラ画像をスクラッチパッドに保存するには、CameraオブジェクトのgetInputStream()メソッドを使用します。このメソッドは、指定されたインデックス(前回説明したgetImage()メソッドと同様のインデックス)の入力ストリームを取得できます(フォーマットはJPEG形式のデータです)。
これを使用してスクラッチパッドへ保存できます。
try {
//カメラオブジェクトの入力ストリーム
InputStream in = camCamera.getInputStream(0);
//スクラッチパッドの出力ストリーム
OutputStream out = Connector.openOutputStream("scratchpad:///0;pos=0");
//画像データをスクラッチパッドに保存
byte[] bPhoto = new byte[128];
int iLength;
iLength = in.read(bPhoto);
while (iLength>=0) {
out.write(bPhoto,0,inLength);
iLength=in.read(bPhoto);
}
in.close();
out.close();
} catch (Exception e) {
//エラー処理
}
スクラッチパッドから撮影した画像の読み込み
保存した画像をスクラッチパッドから取得するには、ダウンロードしたデータの画像を取得する時と同様にメディアマネージャークラスを使用します。
try {
//スクラッチパッドより保存した画像の読み込み
MediaImage media=MediaManager.getImage("scratchpad:///0;pos=0");
media.use();
imgCamera=media.getImage();
} catch (Exception e) {
//エラー処理
}
ほかの機能
カメラの撮影・撮影した画像の保存・読み込みと一連の機能の説明が終わりました。これから作るアプリで使用する基本的な部分になります。ただし、これだけでは携帯の標準機能のほうが便利です。
動画をサポートしている携帯はtakeMovieメソッドというものもありますし、Cameraオブジェクトは他にもできることがあります。
例えば、複数の撮影写真を使用して連続表示することで、コマ送りのように画像を表示できるアプリにしてみるのも面白そうですし、固定したフレームではなくアニメーションするフレームというのもいいかもしれません。カメラを使っていろいろ楽しそうなことができそうですね。
次回はこれらカメラの機能を応用して、エンタメアプリとしての楽しい機能を実装していきましょう。機能追加したiアプリ版カメラのソースはこちらです。
著者紹介 寺田雄一:携帯電話向けアプリの開発を行うRapl(らっぷる)の代表。ゲームなどエンタメ系アプリが主体だがビジネス系アプリの開発も行っており、現在は公式サイトのアプリ開発に携わっている。
|
関連記事
第1回 カメラを使ってみよう!
504iSから505iまで、ドコモの携帯電話で動作するiアプリの開発方法を全6回の連載でお届けする。第1回は、iアプリからカメラを操作する方法を学ぶ。
ドコモ四国、第2回iアプリコンテスト
ドコモ四国はiアプリおよび、505iで動作するFlashコンテンツのコンテストを開催する。
関連リンク
第2回ドコモ四国iアプリコンテスト
NTTドコモ四国
アプリ★ゲット
[Rapl 寺田雄一, ITmedia]
Copyright © ITmedia, Inc. All Rights Reserved.