先日はご教授いただきありがとうございました。
教えていただいたコードを参考に作ってみましたが、カメラ起動→撮影→[OK]すると強制終了されてしまい、canvasに画像が配置されません。
var fname = "/sdcard/temp.jpeg";
とすると、設置したボタンを押下してもカメラ起動せずでした。
現在落ち着いているコードは以下の通りです。
ここから強制終了されないようにするにはどうしたらいいのかご教授いただけますと幸いです。
var canvas = $("a_canvas");
var context = canvas.getContext("2d");
var savedir = "/data/canvasdata/";
droid.mkdir(savedir);
var disp = droid.getDisplayInfo();
a_canvas.width = disp.width;
a_canvas.height = disp.height;
function takePicture() { // 写真を撮影する
// ファイル名を決める
var d = new Date();
var savedir = savedir + (d.getFullYear()) + "-" +
(d.getMonth()+1) + "-" + (d.getDate()) + "_" +
(d.getHours() + "-" + (d.getMinutes())) + "-" +
(d.getSeconds()) + ".jpeg";
// カメラ起動
droid.startIntentForResult(
"camera:" + savedir,
function(code){
if (code == 0) return; //キャンセルされたら何もしない
// 撮影が完了した
drawToCanvas(savedir);
}
);
}
//キャンバスにJPEGファイルを描画する
function drawToCanvas(savedir) {
var image = new Image();
image.onload = function () { // 画像が読み込まれたタイミングで...
context.drawImage(image, 0, 0); // キャンバスに描画
};
image.src = savedir; // 画像ファイルの読込み
}
//キャンセルボタンを押下したら画面クリア
function ImgClr () {
context.clearRect(0,0, canvas.width, canvas.height);
}
// 保存処理
function saveData(){
var saveData = droid.snapshotToFile(savedir);
alert("保存しました");
}