2012-07-04 12 views
5

Android用のphonegapアプリを作成していて、ある時点でbase64 PNG文字列をファイルとして保存します。しかし、私は文字列が単にファイルにダンプされ、開いたときにイメージとして見ることができないことを確認しました。私はbase64でstring.Thisから生成された画像を保存できるようにしたいと思いPhonegap - 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); 
} 

私が試しました画像データだけを保存するようにコードを編集しましたが、どちらも機能しませんでした。助けてください

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

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

everthingトリガーHTMLを(下記参照)。ありがとうございました。

+0

このこのクエストに答えるかもしれないn:[stackoferflow question 11321347](http://stackoverflow.com/questions/8110294/nodejs-base64-image-encoding-decoding-not-quite-working) – fider

答えて

7

イメージを表示するには、イメージのsrcをbase64データに設定するだけです。

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

ファイルをディスクに保存しようとしています。ブラウザ用に生成しないでください。しかし、試してくれてありがとう、サイモン。 – mukama

+0

あなたはプラグインを書く必要があるかもしれません...私はフォトライブラリにキャンバスイメージを保存するiOSのためのプラグインを書いた、あなたは同様のことをする必要があるかもしれません。 Cordova Android Camera APIで画像を保存する方法を見てみるとどうでしょうか? – Devgeeks

+1

あなたは "私はbase64文字列から生成された画像を見ることができますようにお願いします。それは私が答えたものです。あなたは正しくbase64データをファイルに書き込んでいます。そのデータを文字列にロードし、私が言いましたようにsrcを設定すると、それは表示可能になります。そのbase64文字列をバイナリpngファイルに変換するには、それを行うためのプラグインを作成する必要があります。 –

0

base64文字列を置換する必要はありません、ちょうど次によって変換文字列を設定:JavaScriptで

:jqueryの中

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

を:

$("#imageid").attr("src",justTheData) 
関連する問題