HTML5 添加水印
2021-03-14 17:35
标签:new DPoS load png doc base html 比较 canvas HTML5 添加水印 标签:new DPoS load png doc base html 比较 canvas 原文地址:https://www.cnblogs.com/aloneMing/p/12807508.html添加水印的思路
div
,平铺在页面上,给div
的point-event
样式设置为none
,添加一个透明度就可以了,这种实现比较简单,但是效果可能不是很好。canvas
绘制对应的水印图形以及文字,然后转成base64
编码的地址,附加在需要添加水印的页面的根元素上,作为背景图。第二种思路的实现如下
function addWaterMarker(option) {
const {
name = ‘‘,
rootDom = ‘.Main-Mobile‘,
textColor = ‘#3eaa94‘,
opacity = 0.4,
} = option;
const canvas = document.createElement(‘canvas‘);
//水印显示的背景容器
// body.appendChild(can);
canvas.width = 200;
canvas.height = 200;
canvas.style.display = ‘none‘;
var ctx = canvas.getContext(‘2d‘);
ctx.rotate(20 * Math.PI / 180);
ctx.globalAlpha = opacity;
ctx.font = "16px Microsoft JhengHei";
//cans.fillStyle = "rgba(17, 17, 17, 0.50)";
ctx.fillStyle = textColor;
ctx.textAlign = ‘left‘;
ctx.textBaseline = ‘Middle‘;
const img = new Image();
img.src = logo; // 将需要在水印上显示的图片绘制,一般是logo,这个地方取得是本地的,也可以从外面传入
img.onload = function () {
ctx.drawImage(img, 10, 0, 38, 20);
ctx.fillText(name, 55, 20);
document.querySelector(rootDom) && (document.querySelector(rootDom).style.backgroundImage = "url(" + canvas.toDataURL("image/png") + ")");
document.querySelector(rootDom) && (document.querySelector(rootDom).style.backgroundPosition = "50px");
}
}
其它问题
point-events
为none
,然后将水印绘制到蒙版上。
canvas.toDataURL(‘image/png‘)
报错,一般是由于跨域问题,需要保证使用的图片和canvas
所在的页面在同一个域名下。
上一篇:CSS示例
下一篇:css按钮定位在div底部