<template>
<div ref="watermark" class="watermark"/>
</template>
<script>
export default {
mounted() {
const water = this.$refs.watermark;
console.log(water, 'water');
this._setWateMark(water, 200, 200, '保密保密');
},
methods: {
/**
* canvas转换成图片
*/
_canvasWM (width, height, content, rotate = 30) {
// 创建canvas
let canvas = document.createElement('canvas');
canvas.setAttribute('width', width);
canvas.setAttribute('height', height);
let ctx = canvas.getContext("2d");
// 水印内容, 文字样式
ctx.textAlign = 'center';
ctx.textBaseline = 'middle';
ctx.font = "20px microsoft yahei";
ctx.fillStyle = 'rgba(0, 0, 0, 1)';
ctx.rotate(Math.PI / 180 * rotate);
ctx.fillText(content, parseFloat(width) / 2, parseFloat(height) / 2);
// canvas转换成base64
let base64Url = canvas.toDataURL();
console.log(base64Url, 'base64Url');
return base64Url;
},
/**
* 制作水印
*/
_setWateMark (container, width, height, content) {
const waterImg = this._canvasWM(width, height, content);
container.setAttribute('style', `
background-image:url('${waterImg}')
`);
},
},
}
</script>
<style lang="css">
.watermark {
position: fixed;
left: 0;
right: 0;
top: 0;
bottom: 0;
margin: auto;
background-color: #99f;
opacity: 0.2;
z-index: 9999999999;
/* 用这个属性让上层遮罩不影响用户点击 */
pointer-events: none
}
</style>
前端制作水印
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 偶然发现公司的网页内容中有水印的图片都是由可爱的美工一张一张的处理后上传的,虽然阿里云的OSS也提供水印自动添加功...
- 一个126分钟的光影故事,讲述爱情与梦想。一部电影是一段人生,因为有电影的存在,我们可以有多种多样的情感体验,爱情...