2013-12-07 22 views
5

から画像を保存するとき、私はJavascriptで画像を保存するには、このコードを使用します。コードの作品欠落延長キャンバス

window.location.href = grid.toDataURL("image/png").replace("image/png", "image/octet-stream"); 

が、保存したファイルは、任意の拡張子を持っていない、私はそれを手動で名前を変更する必要があります。

私の質問はどのように私は最後に延長を置くことができますか?

ありがとうございます。

答えて

7

toDataURLは、ファイル名ではないdata-uriを生成するので、この場合は拡張子は適用されません。

data-uriは、バイナリコンテンツの単純なテキストエンコードバージョンで、一部のブラウザではファイルとして読み取ることができます。データストリームにはファイル名がないため、データストリームには添付できません。あなたはこのようにアンカータグを設定することにより、この問題を回避することができます

:JavaScriptで

<a id="imageLink" href="data-uri-here" download="myFilename.png"> 
    Click to download 
</a> 

ますが、動的これらの属性を設定することができます。

imageLink.href = grid.toDataURL(); 
imageLink.download = 'myOtherFilename.png'; 
+0

@ mickaelb91確かに、あなたは単にjavascriptでタグを作成することもできます。自動的にクリックをトリガするオプションもあります。これをチェックしてください:http://stackoverflow.com/questions/18480474/how-to-save-an-image-from-canvas/18480879#18480879 – K3N