1. 使用Canvas添加图片水印
<template>
<div>
<canvas ref="watermarkCanvas"></canvas>
<img ref="targetImage" src="example.jpg" alt="Example Image" @load="addWatermark" />
</div>
</template>
<script>
export default {
methods: {
addWatermark() {
const canvas = this.$refs.watermarkCanvas;
const img = this.$refs.targetImage;
const ctx = canvas.getContext('2d');
// 设置canvas大小与图片相同
canvas.width = img.width;
canvas.height = img.height;
// 绘制图片
ctx.drawImage(img, 0, 0);
// 添加图片水印
this.addImageWatermark(ctx, canvas);
},
addImageWatermark(ctx, canvas) {
const watermarkImage = new Image();
watermarkImage.src = 'watermark.png';
watermarkImage.onload = () => {
// 设置水印位置和大小
const x = (canvas.width - watermarkImage.width) / 2;
const y = (canvas.height - watermarkImage.height) / 2;
// 绘制水印
ctx.drawImage(watermarkImage, x, y);
};
}
}
};
</script>
2. 使用CSS样式增强水印可见性
除了使用Canvas,您还可以通过CSS样式来增强水印的可见性。以下是一个使用CSS添加文字水印的示例:
<template>
<div class="watermarked-image">
<img src="example.jpg" alt="Example Image" />
</div>
</template>
<style>
.watermarked-image img {
position: relative;
}
.watermarked-image img::after {
content: '© 2023 Your Company';
position: absolute;
bottom: 10px;
right: 10px;
font-size: 14px;
color: rgba(255, 255, 255, 0.5);
pointer-events: none;
}
</style>
3. 使用Vue Watermark-DOM库
Vue Watermark-DOM是一个基于DOM的水印库,它提供了简单易用的API来添加水印。以下是如何使用Vue Watermark-DOM的示例:
<template>
<div>
<watermark :text="'© 2023 Your Company'" :x="10" :y="10" :color="'rgba(255, 255, 255, 0.5)'" />
<img src="example.jpg" alt="Example Image" />
</div>
</template>
<script>
import Watermark from 'vue-watermark-dom';
export default {
components: {
Watermark
}
};
</script>
4. 注意事项
- 确保水印的透明度适中,以避免干扰图片内容。
- 根据图片内容和尺寸调整水印的大小和位置。
- 使用Canvas或CSS添加水印时,注意兼容性和性能问题。
通过以上技巧,您可以在Vue项目中轻松实现清晰可见的水印效果。这不仅增强了版权保护和隐私保护,还能提升用户体验。