Phonegap - 如何从base64字符串生成图像文件?

muk*_*ama 6 javascript base64 android phonegap-plugins cordova

我正在为Android编写一个phonegap应用程序,我将base64 PNG字符串保存为文件.但是,我发现字符串只是转储到文件中,打开时无法将其视为图像.

我希望能够保存从base64字符串生成的图像.这就是我所拥有的:

Javascript(Formated for Phonegap):

/*** 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);
}
Run Code Online (Sandbox Code Playgroud)

我尝试编辑代码只保存图像数据,但它也没有用.(见下文)

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

触发everthing的HTML:

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

请帮忙.谢谢.

Sim*_*ald 7

您只需将图像的src设置为基本64数据即可查看图像.

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

  • 我想将文件保存到磁盘; 不要为浏览器生成它.但感谢你的努力,西蒙. (4认同)