Phonegap - Получить фотографию из Camera Roll по пути

В моем приложении PhoneGap / jQuery Mobile я сейчас использую API камеры PhoneGaps, чтобы позволить пользователю делать снимки, которые также хранятся в Camera Roll. Я устанавливаю DestinationType на FILE_URI и сохраняю этот путь в локальной базе данных. Однако FILE_URI - это путь к временному расположению, которое уничтожается при закрытии приложения. Я думал сохранить имя изображения, а затем извлечь изображение из Camera Roll. Есть ли путь, который я могу использовать для последующего извлечения изображений из Camera Roll?

Я сохранял изображения как Base64 в базе данных, но мне немного надоел этот метод из-за этой заметки в PhoneGap API Doc :

Примечание. Качество изображений, сделанных камерой на более новых моделях. устройства неплохие. Кодирование таких изображений с использованием Base64 вызвало проблемы с памятью на некоторых из этих устройств (iPhone 4, BlackBerry Torch 9800). Следовательно, использование FILE_URI в качестве Camera.destinationType является настоятельно рекомендуется.

РЕДАКТИРОВАТЬ:

Получил работу с ответом @Simon MacDonald. Вот мой урезанный код:

function capturePhoto() {
    navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 25, destinationType: Camera.DestinationType.FILE_URI });
}

function onPhotoURISuccess(imageURI) {
    createFileEntry(imageURI);
}

function createFileEntry(imageURI) {
    window.resolveLocalFileSystemURI(imageURI, copyPhoto, fail);    
}

function copyPhoto(fileEntry) {
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSys) { 
        fileSys.root.getDirectory("photos", {create: true, exclusive: false}, function(dir) { 
                fileEntry.copyTo(dir, "file.jpg", onCopySuccess, fail); 
            }, fail); 
    }, fail); 
}

function onCopySuccess(entry) {
    console.log(entry.fullPath)
}

function fail(error) {
    console.log(error.code);
}

20
задан Casey 7 February 2012 в 19:14
поделиться