2014-02-19 47 views
3

我有一個名爲napkin的ID畫布。當我調用下面的函數時,它應該在內存中的另一個畫布上繪製圖像和餐巾畫布。它適用於每個瀏覽器,但IOS Safari。該操作似乎沒有超過畫布的IOS內存上限。我通過調用k()。toDataURL()來測試它。有任何想法嗎?Canvas DrawImage不適用於IOS Safari

function k() { 
    var canvas = document.createElement('canvas'); 
    var napkin = document.getElementById("napkin"); 
    var img = new Image(); 
    img.src = picurl; 
    var ctx = canvas.getContext("2d"); 
    var imgdata = new Image(); 
    imgdata.src = napkin.toDataURL(); 
    canvas.width = img.width; 
    canvas.height = img.height; 
    ctx.drawImage(img, 0, 0); 
    ctx.globalAlpha = 0.5; 
    ctx.drawImage(imgdata, 0, 0); 
    return canvas; 
} 
+0

確定圖像已youre設法把它拖到畫布前下載? –

+0

是的,因爲返回畫布的圖像只包含圖像,而不包含其他畫布。 – user1344267

+0

我也遇到了同樣的問題,如何解決這個問題 –

回答

7

你需要等待圖像數據在使用之前加載...

var img = new Image(); 
img.onload = function(){ 
    // do stuff here with img 
}; 
img.src = picurl; 
// not here