2012-04-01 262 views
1

我得到了一個奇怪的問題,「DrawImage」 - 畫布元素的方法。用下面的代碼創建畫布並將其附加到「rightcanvas」div。畫布 - DrawImage方法

var rightcanvas = document.getElementById('rightcanvas'); 
rcanvas = document.createElement('canvas'); 
rcanvas.setAttribute('width', canvasLength); 
rcanvas.setAttribute('height', canvasHeight); 
rcanvas.setAttribute('id', 'rcanvas'); 
rightcanvas.appendChild(rcanvas); 

現在我試着繪製一個Base64編碼圖像。

var rcontext = rcanvas.getContext('2d'); 
var image = new Image(); 
image.src = 'data:image/png;base64,iVBOR....'; 
rcontext.drawImage(image,0,0); 

畫布將被創建並附加。但圖像不會顯示。有人知道問題是什麼? =(

回答

2

你要等待圖像繪製它在畫布前加載。

var image = new Image(); 
image.onload = function() { 
    rcontext.drawImage(image, 0, 0); 
} 
image.src = 'data:image/png;base64,iVBOR....'; 
+0

唉唉..感謝ü非常非常=) – Chronnie 2012-04-01 09:27:50

+0

順便說一下會更好,以避免命名您的變量「圖片'。 – grc 2012-04-01 09:29:36