如何拍摄画布截图?

Гер*_*нов 1 javascript html5 canvas

如何拍摄画布截图?

或者如何在画布上创建由图像+自由区组成的图像?

Dom*_*een 8

这取决于你想要做什么,最简单的方法是在画布上使用toDataUrl.

canvas.toDataURL('png')
Run Code Online (Sandbox Code Playgroud)

这会将您的画布编码为base64,然后您可以在这样的下载链接中使用它

<a href="%dataURI%" download>download</a>
Run Code Online (Sandbox Code Playgroud)

或者只是将其粘贴到图像标签中的dom中.

然后,如果要将实际副本存储在图像中,则可以使用任何语言将该base64转换为图像文件,从而编写更多后端的控制器.

有关详细信息,请参阅此帖子

如何从base64数据字符串保存PNG映像服务器端


Cyb*_*axs 7

这取决于你的框架,但基本上你可以使用 canvas.toDataURL()

这是一个完整的例子

<!DOCTYPE HTML>
<html>
  <head>
    <style>
      body {
        margin: 0px;
        padding: 0px;
      }
    </style>
  </head>
  <body>
    <canvas id="myCanvas" width="578" height="200"></canvas>
    <script>
      var canvas = document.getElementById('myCanvas');
      var context = canvas.getContext('2d');

      // draw cloud
      context.beginPath();
      context.moveTo(170, 80);
      context.bezierCurveTo(130, 100, 130, 150, 230, 150);
      context.bezierCurveTo(250, 180, 320, 180, 340, 150);
      context.bezierCurveTo(420, 150, 420, 120, 390, 100);
      context.bezierCurveTo(430, 40, 370, 30, 340, 50);
      context.bezierCurveTo(320, 5, 250, 20, 250, 50);
      context.bezierCurveTo(200, 5, 150, 20, 170, 80);
      context.closePath();
      context.lineWidth = 5;
      context.fillStyle = '#8ED6FF';
      context.fill();
      context.strokeStyle = '#0000ff';
      context.stroke();

      // save canvas image as data url (png format by default)
      var dataURL = canvas.toDataURL();
    </script>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

dataUrl将包含图像,您可以将其保存在任何地方.


归档时间:

查看次数:

22185 次

最近记录:

12 年,5 月 前