6

Android用のphonegapアプリを作成していますが、ある時点で、base64PNG文字列をファイルとして保存しています。ただし、文字列がファイルにダンプされただけで、開いたときに画像として表示できないことを確認しました。

base64文字列から生成された画像を保存できるようにしたいのですが、これが私が持っているものです:

Javascript(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);
}

画像データだけを保存するようにコードを編集しようとしましたが、どちらも機能しませんでした。(下記参照)

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>

助けてください。ありがとうございました。

4

2 に答える 2

7

画像を表示するには、画像のsrcをbase64データに設定する必要があります。

var image = document.getElementById('myImage');
image.src = "data:image/jpeg;base64," + justTheData;
于 2012-07-04T01:52:43.767 に答える
0

ここでは、base64文字列を置き換える必要はありません。次のようにして、変換文字列を設定するだけです。

javascriptで:

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

jqueryで:

$("#imageid").attr("src",justTheData)
于 2014-04-08T07:05:14.677 に答える