PhoneGap APIヘルプドキュメント翻訳-Camera(カメラ)
Cameraオブジェクトは、デバイスのデフォルトカメラアプリケーションへのアクセスを提供します.
方法: camera.getPicture
パラメータ: cameraSuccess cameraError cameraOptions
camera.getPicture:カメラを使用して写真を撮るか、デバイスアルバムから写真を取得するかを選択します.ピクチャはbase 64で符号化された文字列またはピクチャURIの形式で返される.
簡単な例:
説明:
camera.getPicture関数は、デバイスのデフォルトカメラアプリケーションを開き、ユーザーが写真を撮ることができるようにします(Camera.sourceTypeがCamera.PictureSourceType.CAMERAに設定されている場合、これもデフォルトです).撮影が終了すると、カメラアプリケーションは閉じられ、ユーザーアプリケーションが復元されます.
もしCamera.sourceType = Camera.PictureSourceType.PHOTOOLIBRARYまたはCamera.PictureSourceType.SAVEDPHOTOALBUM、システムは写真の選択ダイアログボックスを弾き出して、ユーザーはアルバムの中から写真を選択することができます.
戻り値は、cameraOptionsパラメータによって設定された次のフォーマットのいずれかに従って、cameraSuccessコールバック関数に送信されます. Base 64でエンコードされた写真画像(デフォルト)を含む文字列. は、ローカルに格納された画像ファイルの位置を表す文字列である.
エンコードされた画像やURIについて、次のような処理を行うことができます.ラベルによる画像のレンダリング(次の例を参照) ローカルデータ(LocalStorage,Lawnchair*など) として格納リモートサーバ にデータを送信する.
備考:新しいデバイスでカメラを使用して撮影された写真の品質はかなりよく、Base 64を使用してこれらの写真を符号化すると、IPHONE 4、BlackBerry Torch 9800などのデバイスにメモリの問題が発生します.そこで、「Camera.destinationType」をFILE_にすることを強くお勧めしますURI.
サポートされるプラットフォーム: Android BlackBerry WebWorks(OS 5.0以降) iOS
簡単な例:
Base 64でエンコードされた画像を撮影して取得する:
写真を撮って、画像ファイルのパスを取得します.
完全な例:
CameraSuccess:画像データのonSuccessコールバック関数を提供します.
パラメータ: imageData:cameraOptionsの設定値に基づいて、Base 64で符号化された画像データまたは画像ファイルのURIとする.(文字列タイプ) 例:
ameraError:エラーメッセージを提供するonErrorコールバック関数.
パラメータ: message:デバイスのローカルコードから提供されるエラー情報.(文字列タイプ) cameraOptions:カメラ設定のオプションパラメータをカスタマイズします.
オプション: quality:画像の品質を記憶し、範囲は[001]である.(数値タイプ) destinationType:データを返すフォーマットを選択します.navigatorを通ります.camera.DestinationTypeで定義します.(数値タイプ)
sourceType:画像ソースを設定します.nagivatorを通ります.camera.PictureSourceTypeで定義します.(数値タイプ)
allowEdit:画像を選択して操作する前に、簡単な編集を許可します.(ブールタイプ) EncodingType:画像ファイルを返す符号化方式を選択し、navigator.camera.EncodingTypeで定義します.(数値タイプ) targetWidth:ピクセル単位の画像の拡大・縮小幅は、targetHeightと同時に使用する必要があります.対応するアスペクト比は変更されません.(数値タイプ) targetHeight:ピクセル単位で画像を拡大・縮小するには、targetWidthと同時に使用する必要があります.対応するアスペクト比は変更されません.(数値タイプ) Androidの特異な状況: allowEditパラメータは無視されます. Camera.PictureSourceType.PHOTOOLIBRARYまたはCamera.PictureSourceType.SAVEDPHOTOALBUMには、同じコレクションが表示されます. Camera.EncodingTypeはサポートされていません.
BlackBerryの特異な状況: qualityパラメータは無視されます. sourceTypeパラメータは無視されます. allowEditパラメータは無視されます. 撮影が終了すると、ローカルカメラアプリケーションを閉じるには、アプリケーションにキー注入権限が必要になります. 大きな画像サイズを使用すると、最近高解像度カメラを備えたモデルデバイスで画像を符号化できない可能性があります(例えば、Torch 9800).
Palmの特異な状況: qualityパラメータは無視されます. sourceTypeパラメータは無視されます. allowEditパラメータは無視されます.
iPhoneの特異な状況:一部のデバイスでメモリエラーが発生しないようにqualityの設定値は50を下回る. destinationTypeを使用する.FILE_URIでは、カメラで撮影した写真や編集した写真がアプリケーションのDocuments/tmpディレクトリに格納されます. アプリケーションが終了すると、アプリケーションのDocuments/tmpディレクトリが削除されます.ストレージスペースのサイズが非常に重要である場合、開発者もnavigatorを通過することができる.fileMgrのインタフェースでディレクトリを削除します.
方法:
パラメータ:
camera.getPicture:カメラを使用して写真を撮るか、デバイスアルバムから写真を取得するかを選択します.ピクチャはbase 64で符号化された文字列またはピクチャURIの形式で返される.
簡単な例:
navigator.camera.getPicture( cameraSuccess, cameraError, [ cameraOptions ] );
説明:
camera.getPicture関数は、デバイスのデフォルトカメラアプリケーションを開き、ユーザーが写真を撮ることができるようにします(Camera.sourceTypeがCamera.PictureSourceType.CAMERAに設定されている場合、これもデフォルトです).撮影が終了すると、カメラアプリケーションは閉じられ、ユーザーアプリケーションが復元されます.
もしCamera.sourceType = Camera.PictureSourceType.PHOTOOLIBRARYまたはCamera.PictureSourceType.SAVEDPHOTOALBUM、システムは写真の選択ダイアログボックスを弾き出して、ユーザーはアルバムの中から写真を選択することができます.
戻り値は、cameraOptionsパラメータによって設定された次のフォーマットのいずれかに従って、cameraSuccessコールバック関数に送信されます.
エンコードされた画像やURIについて、次のような処理を行うことができます.
備考:新しいデバイスでカメラを使用して撮影された写真の品質はかなりよく、Base 64を使用してこれらの写真を符号化すると、IPHONE 4、BlackBerry Torch 9800などのデバイスにメモリの問題が発生します.そこで、「Camera.destinationType」をFILE_にすることを強くお勧めしますURI.
サポートされるプラットフォーム:
簡単な例:
Base 64でエンコードされた画像を撮影して取得する:
navigator.camera.getPicture(onSuccess, onFail, { quality: 50 });
function onSuccess(imageData) {
var image = document.getElementById('myImage');
image.src = "data:image/jpeg;base64," + imageData;
}
function onFail(message) {
alert('Failed because: ' + message);
}
写真を撮って、画像ファイルのパスを取得します.
navigator.camera.getPicture(onSuccess, onFail, { quality: 50,
destinationType: Camera.DestinationType.FILE_URI });
function onSuccess(imageURI) {
var image = document.getElementById('myImage');
image.src = imageURI;
}
function onFail(message) {
alert('Failed because: ' + message);
}
完全な例:
<!DOCTYPE html>
<html>
<head>
<title>Capture Photo</title>
<script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
<script type="text/javascript" charset="utf-8">
var pictureSource; //
var destinationType; //
// PhoneGap
document.addEventListener("deviceready",onDeviceReady,false);
// PhoneGap , !
function onDeviceReady() {
pictureSource=navigator.camera.PictureSourceType;
destinationType=navigator.camera.DestinationType;
}
// Base64
function onPhotoDataSuccess(imageData) {
// Base64
// console.log(imageData);
//
var smallImage = document.getElementById('smallImage');
//
smallImage.style.display = 'block';
//
// CSS
smallImage.src = "data:image/jpeg;base64," + imageData;
}
// URI
function onPhotoURISuccess(imageURI) {
// URI
// console.log(imageURI);
//
var largeImage = document.getElementById('largeImage');
//
largeImage.style.display = 'block';
//
// CSS
largeImage.src = imageURI;
}
// “Capture Photo”
function capturePhoto() {
// , Base64
navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50 });
}
// “Capture Editable Photo”
function capturePhotoEdit() {
// , Base64
navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 20, allowEdit: true });
}
//“From Photo Library”/“From Photo Album”
function getPhoto(source) {
// URI
navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50,
destinationType: destinationType.FILE_URI,sourceType: source });
}
//
function onFail(mesage) {
alert('Failed because: ' + message);
}
</script>
</head>
<body>
<button onclick="capturePhoto();">Capture Photo</button> <br>
<button onclick="capturePhotoEdit();">Capture Editable Photo</button> <br>
<button onclick="getPhoto(pictureSource.PHOTOLIBRARY);">From Photo Library</button><br>
<button onclick="getPhoto(pictureSource.SAVEDPHOTOALBUM);">From Photo Album</button><br>
<img style="display:none;width:60px;height:60px;" id="smallImage" src="" />
<img style="display:none;" id="largeImage" src="" />
</body>
</html>
CameraSuccess:画像データのonSuccessコールバック関数を提供します.
パラメータ:
//
function cameraCallback(imageData) {
var image = document.getElementById('myImage');
image.src = "data:image/jpeg;base64," + imageData;
}
ameraError:エラーメッセージを提供するonErrorコールバック関数.
パラメータ:
{ quality : 75,
destinationType : Camera.DestinationType.DATA_URL,
sourceType : Camera.PictureSourceType.CAMERA,
allowEdit : true,
encodingType : Camera.EncodingType.JPEG,
targetWidth : 100,
targetHeight : 100};
オプション:
Camera.DestinationType = {
DATA_URL : 0, // Base64
FILE_URI : 1 // URI
}
sourceType:画像ソースを設定します.nagivatorを通ります.camera.PictureSourceTypeで定義します.(数値タイプ)
Camera.PictureSourceType = {
PHOTOLIBRARY : 0,
CAMERA : 1,
SAVEDPHOTOALBUM : 2
}
Camera.EncodingType = {
JPEG : 0, // JPEG
PNG : 1 // PNG
};
BlackBerryの特異な状況:
Palmの特異な状況:
iPhoneの特異な状況: