Сохранить изображение в локальной телефонной таблице - программирование
Подтвердить что ты не робот

Сохранить изображение в локальной телефонной таблице

Я совершенно новичок в телефоне, и он говорит, что у него есть функция захвата. Поэтому я использовал его и был очень милым. Однако я отобразил изображение в html, но я не знаю, как сохранить изображение.

согласно http://docs.phonegap.com/en/1.7.0/cordova_camera_camera.md.html

Вы можете делать все, что хотите, с помощью кодированного изображения или URI, например:

Отобразить изображение в теге (см. пример ниже) Сохранить данные локально (LocalStorage, Lawnchair и т.д.)Отправьте данные на удаленный сервер

К сожалению, не было образца кода о том, как это сделать

Как сохранить изображение в LocalStorage или галерее устройства?

4b9b3361

Ответ 1

Отлично, что вы нашли решение, я сделал это следующим образом. Надеюсь, это поможет кому-то другому.

Просто нажмите функция capturePhoto при событии нажатия кнопки.

// 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);
}

Что делает этот код, это

Захват изображения и сохранение его в MyAppFolder на SD-карте устройства. И сохраняет путь изображения в сеансе, чтобы вставить его в локальную базу данных.

Ответ 2

Настройка saveToPhotoAlbum в вариантах True работает также хорошо. Получил это из 2.9 docs здесь.