实现说明:

1、先通过 new Image() 载入图片;

2、图片加载成功后使用 drawImage() 将图片绘制到画布上;

3、最后使用 fillText() 函数绘制水印。

下面展示了详细用法

效果展示:

本案例将图片的四个角都加上水印

在线演示 https://bi.cool/bi/P4O6TNp

实现代码:

html

<canvas id="canvas" width='300' height="200"></canvas>

javascript

// 载入图片
let img = new Image();
img.onload = drawWaterMarks;//图片加载成功的回调
img.src = '/static/material/300x200.svg';// 要绘制水印的图片 // 绘制水印
function drawWaterMarks(){
// 创建画布
let canvas = document.getElementById('canvas');
let ctx = canvas.getContext('2d'); ctx.drawImage(img,0,0)
ctx.font = "bold 18px 'Fira Sans'";
ctx.fillStyle = 'rgba(255,255,255,0.6)'; //水印颜色 // 绘制水印
ctx.fillText("水印文字", 10, 20); //左上
ctx.fillText("水印文字", 220, 20); //右上
ctx.fillText("水印文字", 10, 190); //左下
ctx.fillText("水印文字", 220, 190);//右下
}

代码说明:

1、本案例中图片是远程载入的,所以需要通过 img.onload 来等待图片加载完成后再回调 drawWaterMarks() 函数进行画布的绘制。如果图片是一个 Base64 编码的字符串则不需要回调,可以立即开始绘制。

2、其中变量 ctx 为一个 CanvasRenderingContext2D对象,我们用到它的以下属性与函数:

  • drawImage()函数 将图片绘制到画布上
  • font 设置文字样式
  • fillStyle 填充文字颜色,使用 rgba 将文字透明度设置为 0.6
  • fillText()函数 将文字绘制到画布上,通过修改它的第2和第3个参数调整水印位置

版权声明:[自由转载-注明出处-非商用-非衍生] (知识共享许可协议)

在 JS 中使用 canvas 给图片添加文字水印的更多相关文章

  1. 利用php给图片添加文字水印--面向对象与面向过程俩种方法的实现

    1: 面向过程的编写方法 //指定图片路径 $src = '001.png'; //获取图片信息 $info = getimagesize($src); //获取图片扩展名 $type = image ...

  2. php图片添加文字水印方法汇总

    方法一: <?php header("content-type:text/html;charset=utf-8"); //指定图片路径 $src = "img/a. ...

  3. php给图片添加文字水印方法汇总

    在php中要给图片加水印我们需要给php安装GD库了,这里我们不介绍GD库安装,只介绍怎么利用php给图片添加文字水印的4种方法的汇总.有需要的小伙伴可以参考下. 1: 面向过程的编写方法 1 2 3 ...

  4. php使用GD库实现图片水印和缩略图——给图片添加文字水印

    今天呢,就来学习一下在php中使用PD库来实现对图片水印的文字水印方法,不需要PS哦! 首先,准备素材 (1)准备一张图片 (2)准备一张水印(最好是透明的,即背景是白色底) (3)准备一中字体(在电 ...

  5. php 图片添加文字水印 以及 图片合成(微信快码传播)

    1.图片添加文字水印: $bigImgPath = 'backgroud.png'; $img = imagecreatefromstring(file_get_contents($bigImgPat ...

  6. Swift - 给图片添加文字水印(图片上写文字,并可设置位置和样式)

    想要给图片添加文字水印或者注释,我们需要实现在UIImage上写字的功能. 1,效果图如下: (在图片左上角和右下角都添加了文字.) 2,为方便使用,我们通过扩展UIImage类来实现添加水印功能 ( ...

  7. C#图片添加文字水印

    /// <summary> /// 给图片添加文字水印 /// </summary> /// <param name="img">图片</ ...

  8. PHP给图片添加文字水印实例

    PHP给图片添加文字水印实例,支持中文文字水印,是否覆盖原图,自定义设置水印背景色.文字颜色.字体等. 水印类water.class.php var $Path = "./"; / ...

  9. asp .net 为图片添加文字水印(内包含有加图片水印的方法) .

    在项目中先创建一个Imag_writer 类库 在该类库下分别创建两个枚举类型WaterMarkType (水印的类型).WaterMarkPosition (水印的位置).代码如下: using S ...

  10. opencv给图片添加文字水印<转>

    其中有一些改动为了文字大小等还有一些图片的尺寸,真正使用的时候可以把尺寸的屏蔽掉 头文件: //==================================================== ...

随机推荐

  1. #树状数组,离散#C 波动序列

    分析 设\(dp[i][j][0/1/2/3]\)表示前\(i\)个位置当前选的数为\(j\), 且选择的是第一行/第二行/第三行不下降/第三行不上升, 状态转移方程显然,用线段树或者树状数组维护一下 ...

  2. #深搜,期望#CF105B Dark Assembly

    洛谷题目传送门 CODEFORCES传送门 分析 题目强调贿赂要在投票开始前完成说明分糖和成功率可以分开计算 那么分糖考虑直接暴搜,由于题目并没有说糖必须全部分完, 所以每一次分完一颗糖后均要求当前状 ...

  3. 未来已来,OpenHarmony 3.2 Release发布,迈入发展新阶段

      2023年4月9日,在社区开发者的期盼中,在春风送暖万物更新的季节里,我们迎来了OpenAtom OpenHarmony(以下简称"OpenHarmony")3.2 Relea ...

  4. Django集成layui 的 layedit 之图片上传接口

    # a.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  5. Python查询上周五是多少号

    使用Python可以轻松的查询出上周几是多少号,这周几是什么多少号,以下是查询上周五的示例: import datetime, calendar last = datetime.date.today( ...

  6. cmd中怎么清屏--cls

    平时我们在 Linux 系统中清除屏幕 用的命令是:  clear 现在在Windows上用的清屏命令是 : cls

  7. easyExcel合并数据导出(一对多)

    语言 java 框架 ssm 需求 :看图  也是导出效果 数据库查询为(关系为一对多) 一个学生对应多个课程 实现步骤 1.实体类配置, 建议单独写个实体用来导出使用() 学生信息字段正常配置  , ...

  8. 淘宝二面:MySQL里有2000万条数据,但是Redis中只存20万的数据,如何保证redis中的数据都是热点数据?

    引言 在当今互联网领域,尤其在大型电商平台如淘宝这样的复杂分布式系统中,数据的高效管理和快速访问至关重要.面对数以千万计的商品.交易记录以及其他各类业务数据,如何在MySQL等传统关系型数据库之外,借 ...

  9. css test-align 和 margin 居中什么区别

    共同点 test-align 和margin 都可以居中: test-align:Center. margin: 0 auto. 很好但是看下区别: <div style="backg ...

  10. 力扣178(MySQL)-分数排名(中等)

    题目: 表: Scores 编写 SQL 查询对分数进行排序.排名按以下规则计算: 分数应按从高到低排列.如果两个分数相等,那么两个分数的排名应该相同.在排名相同的分数后,排名数应该是下一个连续的整数 ...