Phonegap – Как сгенерировать файл изображения из строки base64?

Я пишу приложение phonegap для Android и в какой-то момент сохраняю строку PNG base64 в виде файла. Однако я заметил, что строка просто сбрасывается в файл и не может рассматриваться как изображение при открытии.

Я хотел бы иметь возможность сохранить изображение, сгенерированное из строки base64. Это то, что у меня есть:

Javascript (созданный для телефонной почты):

/*** Saving The Pic ***/ var dataURL = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="; //A simple red dot function gotFS(fileSystem) { fileSystem.root.getFile("dot.png", {create: true, exclusive: false}, gotFileEntry, fail); } function gotFileEntry(fileEntry) { fileEntry.createWriter(gotFileWriter, fail); } function gotFileWriter(writer) { writer.write(dataURL); //does not open as image } function fail(error) { console.log(error.code); } 

Я попытался редактировать код, чтобы сохранить только данные изображения, но он тоже не работал. (Смотри ниже)

 function gotFileWriter(writer) { var justTheData = dataURL.replace(/^data:image\/(png|jpg);base64,/, "");//Removes everything up to ...'base64,' writer.write(justTheData); //also does not show } 

HTML, который запускает все:

 <p onclick="window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail)">Save a Dot</p> 

Пожалуйста помоги. Спасибо.

Вам просто нужно установить src вашего изображения на базовые 64 данные для просмотра изображения.

 var image = document.getElementById('myImage'); image.src = "data:image/jpeg;base64," + justTheData; 

Здесь нет необходимости заменять строку base64, просто установите строку преобразования следующим образом:

В javascript:

 var image = document.getElementById('myImage'); image.src = justTheData;// this convert data 

В jquery:

 $("#imageid").attr("src",justTheData)