カメラの機能を利用する場合、PhoneGapでは「
navigator.camera」というオブジェクトが用意されています。このオブジェクト内に用意されているメソッドを呼び出すことで、カメラ機能を使って撮影したイメージを利用することが出来るようになります。
カメラ撮影のメソッドは、「
getPicture」というものです。これは以下のような形で呼び出すことができます。
navigator.camera.getPicture( 成功時の処理,
失敗時の処理, オプション設定 );
成功時の処理――撮影が正しく行われた時に呼び出されるコールバック関数です。ここで撮影されたイメージの処理を行います。
失敗時の処理――撮影に失敗した時に呼び出されるコールバック関数です。ここでエラー処理を用意します。
オプション設定――カメラを呼び出す際の諸設定を連想配列としてまとめたものを用意します。不要なら省略できます。
成功時には、第1引数に用意されたコールバック関数が呼び出されます。ここで引数に渡された値を利用してイメージを処理します。――が、実はこの引数の値がちょっと問題だったりします。
■コールバック変数の引い吸うとdestinationType
この第1引数に用意するコールバック関数で引数に渡されるのは、Base64でエンコードされたイメージのバイナリデータなのです。まぁ、これを
<img>の
srcに設定してイメージを表示させたりもできないわけではありませんが、正直、HTML + JavaScriptで操作する場合、扱いにくい感じがしますね。
そこで一般的には、第3引数の連想配列に「
destinationType」といった設定項目を用意し、これを使ってイメージのアドレスを受け渡すようにします。
destinationTypeは、成功時に渡すデータのタイプを設定するもので、
Camera.DestinationTypeに用意されている以下のいずれかの値を指定します。
DATA_URL――デフォルトで設定されています。エンコードされたイメージデータがそのまま渡されます。
FILE_URI――撮影したイメージファイルのアドレスが渡されます。
FILE_URIに設定すれば、イメージファイルのアドレスが引数で渡されるようになりますので、これをそのまま利用してイメージを表示したりできるようになるでしょう。