How to download a image that's on HTML5 canvas?

后端 未结 2 568
时光说笑
时光说笑 2021-01-22 13:01

I wrote this webRTC app which takes photos with different filters added onto it. When I click on the click button, the frame from the webRTC video feed is loaded onto the canvas

相关标签:
2条回答
  • 2021-01-22 13:24

    You can do this by using the .toDataURL() method on the canvas element. And then apply this to the download attribute to an <a> tag. We can add an anchor tag around the image:

    <a>
        <canvas width="300" height="300" id="canvas"></canvas>
    </a>
    

    Now for the clicking on the canvas, we adjust the download and href of the <a> parent:

    $('#canvas').click(function(){
         $(this).parent().attr('href', document.getElementById('canvas').toDataURL());
         $(this).parent().attr('download', "myPicture.png");    
    });
    

    Here is an example

    0 讨论(0)
  • 2021-01-22 13:32

    You might also consider using Concrete.js, which is a lightweight HTML5 Canvas Framework that does peripheral stuff like this, including downloads. You would just do:

    canvas.download({
      fileName: 'my-file.png'
    });
    
    0 讨论(0)
提交回复
热议问题