Html Canvas 在渲染图像中添加文本或图像

Html Canvas add Text Or Image in Rendered Image

我正在尝试在 canvas 生成的图像中添加文本(水印)

这是我的代码。

 html2canvas($("#frame"), {
             onrendered: function (canvas) {

                $("#outputImage").html(canvas);

             }

我应该在此代码中添加什么以在生成的图像中添加水印标记

在处理程序中执行以下操作:

html2canvas($("#frame"), {
  onrendered: function (canvas) {

    var ctx = canvas.getContext("2d");       // get 2D context of canvas

    ctx.textBaseline = "top";                // start with drawing text from top
    ctx.font = "20px sans-serif";            // set a font and size
    ctx.fillStyle = "red";                   // set a color for the text
    ctx.fillText("WATERMARK", 20, 20);       // draw the text at some position (x, y)

    $("#outputImage").html(canvas);

  }
}

还有对齐模式使用:

ctx.textAlign = "center";  // default: "start" = left-to-right/right-to-left 
                           // depending on language, override with "left" or "right"

查看 Canvas.globalCompositeOperation. If you set it to the string 'lighter', it will lighten the pixels drawn by the next drawing command (such as fillText())。这是一个示例

<canvas id='canvas'></canvas>
<script>
  var img = new Image();
  img.src = 'http://www.javascripture.com/pic.jpg';
  img.onload = function() {
    var canvas = document.getElementById('canvas');
    var context = canvas.getContext('2d');
    context.drawImage(img, 0, 0, canvas.width, canvas.height);

    // Draw the Watermark
    context.font = '48px sans-serif';
    context.globalCompositeOperation = 'lighter';
    context.fillStyle = '#444';
    context.textAlign = 'center';
    context.textBaseline = 'middle';
    context.fillText('watermark', canvas.width / 2, canvas.height / 2);
  };
</script>