javascript
  • html5
  • canvas
  • 2012-09-27 87 views 4 likes 
    4

    我想保存圖像,PNG畫布,但是當我試試這個:保存HTML5畫布圖像作爲圖像

    var myCanvas = document.getElementById("myCanvas"); 
    var img = document.createElement('img'); 
    var ctx = myCanvas.getContext ? myCanvas.getContext('2d') : null; 
    img.src = 'image.png'; 
    
    img.onload = function() { 
        ctx.drawImage(img, 0, 0, myCanvas.width, myCanvas.height); 
    } 
    
    var data = myCanvas.toDataURL("image/png"); 
    if (!window.open(data)) { 
        document.location.href = data; 
    } 
    

    我只得到沒有圖像的空白透明圖像。我究竟做錯了什麼?

    回答

    6

    您需要將window.open調用放入裝入處理程序中,因爲這會發生異步

    img.onload = function() { 
        ctx.drawImage(img, 0, 0, myCanvas.width, myCanvas.height); 
    
        var data = myCanvas.toDataURL("image/png"); 
        if (!window.open(data)) { 
         document.location.href = data; 
        } 
    } 
    
    +0

    謝謝,這就是它! – Jaap

    相關問題