如何将捕获的图片作为blob保存到SQLite中并在Phonegap中重新获取?

时间:2013-04-12 11:41:20

标签: javascript html5 cordova

我有一个创建的Phonegap项目,它按照教程http://mobile.tutsplus.com/tutorials/phonegap/phonegap-from-scratch-camera-exporting/.Now使用Camera捕获图片我想将图像保存为blob到sqlite数据库中。一旦保存检索并显示图像。请建议。

1 个答案:

答案 0 :(得分:3)

请按照以下步骤
1。使用手机间隙相机API将您的照片作为基础64 2. 现在将Base 64转换为Blob对象

function convertDataURIToBlob(dataURI, mimetype) {
    var BASE64_MARKER= ';base64,';
    var base64Index = dataURI.indexOf(BASE64_MARKER) + BASE64_MARKER.length;
    var base64 = dataURI.substring(base64Index);  
    var raw = window.atob(base64);
    var rawLength = raw.length;
    var uInt8Array = new Uint8Array(rawLength);
    for (var i = 0; i < rawLength; ++i) {
        uInt8Array[i] = raw.charCodeAt(i);   
    }
    var bb = new BlobBuilder();
    bb.append(uInt8Array.buffer);
    return bb.getBlob(mimetype); 
}

然而,不应该传入mimetype,而应该从中提取它 数据网址与getBlob()一起使用。

使用此plugin
3. 现在您可以使用phonegap Storage API将图像保存到Sqlite,您希望的列数据类型为字符串。
4. 使用Phone gap Storage API从Sqlite中获取blob对象 5. 现在使用Java脚本将此对象表示为HTMl标记。这里   将blob对象示例为HTML 5

<!DOCTYPE html>    
<html>    
<head>    
    <meta charset="utf-8" />    
    <title>Blob</title>    
    <script type="text/javascript">    
        (function () {    
            window.URL = window.URL || window.webkitURL;    
            function contentLoaded() {    
                var blob = new Blob(['alert("hello")'], { type: 'text/javascript' });    
                var script = document.createElement('script');    
                script.setAttribute('src', window.URL.createObjectURL(blob));    
                document.body.appendChild(script);    
            }    
            window.addEventListener('DOMContentLoaded', contentLoaded, false);    
        } ());    
    </script>    
</head>    
<body>    
    <div id="container">    
    </div>    
</body>    
</html>
相关问题