给图片添加水印是使用h5的canvas实现。
下面是实现代码:
let drawWaterMark = function () {
let ctx = document.getElementById('ctx').getContext('2d');
function drawText(text, color, alpha) { // 设置水印文字的基本样式,并进行填充
ctx.font = '20px 楷体';
ctx.fillStyle = color;
ctx.textAlign = 'left';
ctx.textBaseline = 'middle';
ctx.globalAlpha = alpha;
let textWidth = ctx.measureText(text).width;
ctx.fillText(text, ctx.canvas.width - textWidth, ctx.canvas.height - 20);
}
function createImg(src) { // 根据传入的图片路径创建图片,并调整画布的宽高与图片的宽高一致
let img = new Image();
img.src = src;
ctx.canvas.height = img.height;
ctx.canvas.width = img.width;
return img;
}
return function (imgSrc, text, color, alpha) {
let img = createImg(imgSrc);
img.onload = function () { // 图片加载完毕后进行绘制
ctx.drawImage(img, 0, 0);
ctx.save();
drawText(text, color, alpha);
ctx.restore();
}
}
}();
drawWaterMark('./test.jpg', '水印', 'red', 0.3);