これまでのところ私は、ボタンをクリックするとカメラが開かれ、画像が撮られたときにページに表示される、自分のアプリのためにカメラAPIを動作させました。キャプチャした画像をSQliteデータベースに保存していますか? (Cordova)
私の次のステップは、イメージをテーブル内のsqliteデータベースに保存することです。データベースの作成には問題はありません。すでに他のテーブルをいくつか使用していますので、データベースにイメージを格納する方法を見つけるだけです。
誰か助けてもらえますか?
カメラ機能:
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
document.getElementById("btnCamera").onclick = function() {
navigator.camera.getPicture(function (imageUri) {
var lastPhotoContainer = document.getElementById("lastPhoto");
alert("Hot stuff!");
lastPhotoContainer.innerHTML = "<img src='" + imageUri + "' style='width: 75%;' />";
}, null, null);
};
}
HTML:
<div data-role="page" id="page7" data-theme="d">
<div data-role="header">
<a href="#page1" class="ui-btn ui-icon-home ui-btn-icon-left">Sign ut</a>
<h1>SoccerMeet</h1>
</div>
<div data-role="main" class="ui-content">
<input id="btnCamera" type="button" value="Camera photo" />
<p id="lastPhoto"></p>
</div>
<div data-role="footer">
<h2>© Gallery</h2>
</div>
</div>
更新されたスクリプト:
document.addEventListener("deviceready", onDeviceReady, false);
var db;
function onDeviceReady() {
db = window.openDatabase("SoccerEarth", "2.0", "SoccerEarthDB", 2 * 1024 * 1024);
db.transaction(function(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS Gallery (id INTEGER PRIMARY KEY, myImage BLOB)');
}, errorE, successS);
}
function successS() {
alert("Camera database ready!");
document.getElementById("btnCamera").onclick = function() {
navigator.camera.getPicture(onSuccess, onFail, {
quality: 50,
destinationType: Camera.DestinationType.DATA_URL
});
};
}
function onSuccess(tx, imageData) {
alert("Camera test 1");
var image = document.getElementById("lastPhoto");
image.src = "data:image/jpeg;base64," + imageData;
base64imageData = imageData;
var _Query3 = ("INSERT INTO Gallery(myImage) values ('" + base64imageData + "')");
alert(_Query3);
tx.executeSql(_Query3);
}
/* function successCamera() {
navigator.notification.alert("Image has been stored", null, "Information", "ok");
$(":mobile-pagecontainer").pagecontainer("change", "#page4");
} */
function onFail(message) {
alert('Failed because: ' + message);
}
function errorE(err) {
alert("Error processing SQL: " + err.code);
}
あなたがBASE64に画像を変換し、それを保存します。 – IamKarim1992
@ IamKarim1992は何らかの種類のテンプレートを提供できれば素晴らしいでしょうか? – Mahdi
@Mahdi:あなたの質問に対する解決策はありますか?同様のシナリオでも問題に直面しています。 – Mrunal