将图像保存在本地存储phonegap中 [英] Save image in local storage phonegap

查看:18
本文介绍了将图像保存在本地存储phonegap中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对 phonegap 很陌生,它说它具有捕获功能.所以我使用它并且非常好.但是我在html中显示了图片,但我不知道如何保存图片.

I am quite new to phonegap and it says that it has a capture feature. So i used it and was very nice. However I displayed the picture in the html but i dont know how to save the image.

根据 http://docs.phonegap.com/en/1.7.0/cordova_camera_camera.md.html

你可以对编码后的图像或 URI 做任何你想做的事情,例如:

You can do whatever you want with the encoded image or URI, for example:

在标签中渲染图像(参见下面的示例)在本地保存数据(LocalStorage、Lawnchair 等)将数据发布到远程服务器

Render the image in an tag (see example below) Save the data locally (LocalStorage, Lawnchair, etc) Post the data to a remote server

很遗憾,没有关于如何操作的示例代码

Unfortunately there was no sample code on how to do it

如何将图像保存在本地存储或设备图库中?

How do i save image in LocalStorage or gallery of device?

推荐答案

太好了,你找到了解决方案,我按照以下方式做到了.希望对其他人有所帮助.

Great you found the solution, I did it the following way. Hope it helps someone else.

只需在按钮点击事件上调用 capturePhoto 函数.

Simply call capturePhoto function on button click event.

// A button will call this function
//
function capturePhoto() {
    sessionStorage.removeItem('imagepath');
    // Take picture using device camera and retrieve image as base64-encoded string
    navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50, destinationType: Camera.DestinationType.FILE_URI });
}

function onPhotoDataSuccess(imageURI) { 
        // Uncomment to view the base64 encoded image data
        // console.log(imageData);

        // Get image handle
        //
        var imgProfile = document.getElementById('imgProfile');

        // Show the captured photo
        // The inline CSS rules are used to resize the image
        //
        imgProfile.src = imageURI;
        if(sessionStorage.isprofileimage==1){
            getLocation();
        }
        movePic(imageURI);
}

// Called if something bad happens.
// 
function onFail(message) {
    alert('Failed because: ' + message);
}

function movePic(file){ 
    window.resolveLocalFileSystemURI(file, resolveOnSuccess, resOnError); 
} 

//Callback function when the file system uri has been resolved
function resolveOnSuccess(entry){ 
    var d = new Date();
    var n = d.getTime();
    //new file name
    var newFileName = n + ".jpg";
    var myFolderApp = "MyAppFolder";

    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSys) {      
    //The folder is created if doesn't exist
    fileSys.root.getDirectory( myFolderApp,
                    {create:true, exclusive: false},
                    function(directory) {
                        entry.moveTo(directory, newFileName,  successMove, resOnError);
                    },
                    resOnError);
                    },
    resOnError);
}

//Callback function when the file has been moved successfully - inserting the complete path
function successMove(entry) {
    //Store imagepath in session for future use
    // like to store it in database
    sessionStorage.setItem('imagepath', entry.fullPath);
}

function resOnError(error) {
    alert(error.code);
}

这段代码的作用是

捕获图像并将其存储在设备 SD 卡上的 MyAppFolder 中.并将 imagepath 存储在 session 中,以便插入到本地数据库中.

Captures image and stores it in MyAppFolder on device's SD Card. And stores imagepath in session so as to insert it in local database.

这篇关于将图像保存在本地存储phonegap中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆