2012-06-04 68 views
0

我正在使用dataurl將畫布轉換爲圖像。我有以下代碼在控制檯中輸出沒有錯誤。似乎有點工作,但是當我訪問dataurl它顯示一個空白圖像。畫布圖像顯示爲無圖像(空白)

window.onload = function() { 
    var canvas = document.getElementById("myCanvas"); 
    var context = canvas.getContext("2d"); 
    var imageObj = new Image(); 

    imageObj.onload = function() { 
     var myImage = context.drawImage(imageObj, 0, 0);   
     var myImg = canvas.toDataURL("image/png"); 
     document.getElementById("canvasimg").setAttribute("src", myImg); 
    }; 
    imageObj.src = "http://img801.imageshack.us/img801/5641/3cc67ca1a74049ce99bc92b.png"; 
}; 

<canvas id="myCanvas" width="578" height="400"></canvas> 
<img id="canvasimg" alt="" src=""> 

回答

1

看看你在做什麼。您在圖像加載時繪製圖像,但是在繪製圖像之前將其轉換爲數據url!移動toDataURL呼叫和setAttribute呼叫INSIDE onload功能。

+0

我試過了,但我卻得到相同的結果。我更新了代碼以反映您所說的內容。 –

1

測試您發佈的代碼,我得到一個安全錯誤提出。這是可以預料的。畫布上有一個乾淨的標誌,一旦該標誌爲false,就不能從中拉出數據。

這裏有一個更詳細的,相關question

Documentation linked to in the answer

+0

就是這樣。 *同源*策略也適用於位圖數據。 –