前端背景加水印
时间: 2025-03-22 08:02:58 浏览: 23
前端背景加水印是一种常见的需求,主要用于保护图片、文档或其他内容不被盗用或滥用。通过将文本、图案等信息作为“水印”添加到图像上,可以标明版权归属或提供其他相关信息。
### 实现步骤
1. **准备画布 (Canvas)**
- 利用 HTML5 的 `<canvas>` 元素生成一个透明的画布。
2. **加载目标图片**
- 使用 JavaScript 加载需要处理的目标图片(例如用户上传的一张照片),并将其绘制到 Canvas 上。
3. **绘制水印**
- 设置字体样式、颜色以及旋转角度等内容属性,在适当位置开始书写文字型水印;也可以插入矢量图形来充当复杂形状的标志型水印。
4. **合并显示结果**
- 将带有叠加效果的新图像导出为 Base64 编码字符串或是直接下载保存下来供后续使用。
```javascript
function addWatermark(imageUrl, text){
var canvas = document.createElement('canvas');
var ctx = canvas.getContext("2d");
// 调整大小匹配原图尺寸
const img = new Image();
img.src = imageUrl;
img.onload=function(){
canvas.width=img.width;
canvas.height=img.height;
// 绘制原始图像至画布上
ctx.drawImage(img ,0, 0);
// 添加自定义风格配置给上下文环境变量对象ctx
ctx.font="italic bold 80px Arial";
ctx.fillStyle="#FFFFFF";
ctx.globalAlpha=0.5;
// 计算居中坐标值用于放置标注文字
let x=(img.width)/2;
let y=(img.height)/2;
// 应用变换矩阵前先记录当前状态以便恢复
ctx.save();
ctx.translate(x,y);
ctx.rotate(-Math.PI / 4); //-45度角倾斜
// 输出实际数据串入画面内
ctx.fillText(text,-x+50,-y+50);
// 返回操作后复位之前设定好的各项参数限制条件
ctx.restore();
};
}
```
#### 注意事项
- 确保所有资源文件都已正确引入,并妥善管理跨域请求权限设置。
- 对于动态生成的内容要考虑性能优化问题避免阻塞主线程工作流程过久影响用户体验感。
阅读全文
相关推荐

