如何将 Canvas 图形转换为图像?


HTML canvas 图形提供了许多创建多功能对象的选项。在使用 Canvas 时,您可能希望将图形转换为真实的图像,以便下载或打印。本文将帮助您创建图形并将其保存到您的设备上。

示例

在这里,我们使用 javascript Canvas 创建图形,然后将图形转换为图像。在此示例中,我们将创建一个实心红色正方形,然后使用按钮将其下载到设备。

算法

步骤 1:在画布上创建图形。

步骤 2:创建图形后,获取图形元素的 ID。

步骤 3:创建一个图像对象,并使用 toDataURL() 函数将图像的源 (src) 设置为画布的数据 URL。

步骤 4:现在将图像源分配给链接的 href 属性。

步骤 5:为画布图像创建一个唯一的文件名,因为您的图像将使用此名称保存。

步骤 6:插入一个按钮元素以保存此图像。

示例

<!DOCTYPE html>
<html>
<head>
  <title>Canvas to Image Conversion</title>
</head>
<body>
  <canvas id="myCanvas" width="200" height="200"></canvas>
  <button onclick="convertToImage()">Convert to Image</button>

  <script>
    function convertToImage() {
      // Get the canvas element
      const canvas = document.getElementById('myCanvas');
      const context = canvas.getContext('2d');

      // Clear the canvas
      context.clearRect(0, 0, canvas.width, canvas.height);

      // Draw a red square on the canvas
      context.fillStyle = 'red';
      context.fillRect(50,50,100,100);
     

      // Create an image element
      const image = new Image();

      // Assign the canvas content as the source of the image
      image.src = canvas.toDataURL();

      // Create a temporary link element to download the image
      const link = document.createElement('a');
      link.href = image.src;
      link.download = 'canvas_image.png';

      // Trigger the link programmatically to start the download
      link.click();
    }
  </script>
</body>
</html>

示例

在此示例中,我们将尝试将复杂的画布图形转换为图像。

算法

步骤 1:在画布上创建图形。

步骤 2:获取图形元素的 ID 并创建一个图像对象。

步骤 3:使用 toDataURL() 函数设置图像的源。

步骤 4:创建画布图形。

步骤 5:指定图像文件名。

步骤 6:通过设置图像颜色和尺寸来创建图形。

步骤 7:设置图像转换按钮。

示例

<!DOCTYPE html>
<html>
<head>
  <title>Canvas to Image Conversion</title>
</head>
<body>
  <canvas id="myCanvas" width="200" height="200"></canvas>
  <button onclick="convertToImage()">Convert to Image</button>

  <script>
    function convertToImage() {
      // Get the canvas element
      const canvas = document.getElementById('myCanvas');
      const context = canvas.getContext('2d');

      // Clear the canvas
      context.clearRect(0, 0, canvas.width, canvas.height);

      // Draw a red square on the canvas
      context.fillStyle = 'red';
      context.fillRect(50,50,100,100);
     

      // Create an image element
      const image = new Image();

      // Assign the canvas content as the source of the image
      image.src = canvas.toDataURL();

      // Create a temporary link element to download the image
      const link = document.createElement('a');
      link.href = image.src;
      link.download = 'canvas_image.png';

      // Trigger the link programmatically to start the download
      link.click();
    }
  </script>
</body>
</html>

结论

通过遵循几行代码和触发事件,可以轻松地将画布图形转换为图像。在本文中,我们介绍了两种在画布上创建图形并将其另存为单独图像文件的方法。

更新于: 2023年8月9日

5K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告
© . All rights reserved.