3

キャンバスのスクリーンショットを撮るには?

または キャンバス上に画像 + フリーゾーン で構成される画像をどのように作成しますか?

4

2 に答える 2

9

フレームワークによって異なりますが、基本的には使用できます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>

dataUrl には画像が含まれ、必要な場所に保存できます。

于 2013-05-28T13:04:17.087 に答える
9

何をしたいかによって異なりますが、最も簡単な方法は、キャンバスで toDataUrl を使用することです。

canvas.toDataURL('png')

これにより、キャンバスがbase64にエンコードされ、次のようなダウンロードリンクで使用できます

<a href="%dataURI%" download>download</a>

または、イメージ タグの dom に貼り付けます。

次に、イメージから実際のコピーを保存したい場合は、これまでの言語を使用してそのbase64をイメージファイルに変換する、よりバックエンドであるコントローラーを作成できます。

詳細については、この投稿を参照してください

base64 データ文字列からサーバー側で PNG 画像を保存する方法

于 2013-05-28T13:06:08.487 に答える