javascript
  • html5
  • canvas
  • 2012-09-27 88 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

    相关问题