2012-05-10 3 views
1

私はキャンバスで画像を描くのに苦労しています。 私がこれまで行ってきたことは、Canvasからimagedataをデータベースに挿入したことです。 問題は、データのイメージを作成して後でキャンバスに描画しようとしたときに、同じピクセルが描画されず、一部のピクセルのみが描画され、残りは描画されません。ベース64pngからキャンバス

私はこのような画像データを取得しています:

var CanvasData = document.getElementById('canvas'); 
CanvasData = CanvasData.toDataURL("image/png"); 

そして、この(データがデータベースに格納されている)のようなバックキャンバス上の画像を描画:

var result = xmlhttp.responseText; 
var CanvasDraw = document.getElementById('canvas'); 
var ctxChange = CanvasDraw.getContext('2d');   

imagedata = new Image(); 
imagedata.src = result; 
imagedata.onload = function(){ 
    ctxChange.drawImage(imagedata, 0, 0); 
} 

はここですimagedataの例のpastebinへのリンク:http://pastebin.com/XGmV49k9 結果は、AJAX呼び出しから返され、データベースに格納されているデータと同じです。

ありがとうございました。

答えて

2

は、この行でそのエラーようだ:

imagedata.src = result; 

は次のようになります。ご返信用

imagedata.src = CanvasData; 
+0

感謝。申し訳ありませんが、コードのその部分を追加するのを忘れました。結果は、データベースに格納されている実際の文字列であり、AJAX呼び出しから受信されます。したがって、それは画像データです。 – Araw

+0

base64イメージにエラーがあります。ブラウザのアドレスバーに貼り付けてみてください。それは失敗する。しかし、http://en.wikipedia.org/wiki/Data_URI_schemeからデータを挿入しようとすると、画像 – antyrat

+0

が表示されます。あなたが投稿したURLのデータを使用したときにうまくいきました。は正しい)。自分のコードでtoDataURLを使用したときに何が問題になっているのかわからない:S – Araw

関連する問題