vue2 图片加水印
时间: 2023-10-12 13:01:26 浏览: 76
在 Vue 2 中给图片加水印,你可以使用 HTML5 的 Canvas API 来实现。下面是一个简单的示例代码:
首先,在你的 Vue 组件中添加一个 `<canvas>` 元素和一个 `<img>` 元素来展示原始图片和加水印后的图片:
```html
<template>
<div>
<canvas ref="canvas" style="display: none;"></canvas>
<img ref="image" :src="originalImage" alt="Original Image">
<img :src="watermarkedImage" alt="Watermarked Image">
</div>
</template>
```
然后,在组件的 `mounted` 生命周期钩子中,获取 `<canvas>` 元素和原始图片,并在 Canvas 上绘制水印:
```javascript
<script>
export default {
data() {
return {
originalImage: 'path/to/original-image.jpg'
相关问题
vue图片压缩加水印
要在Vue中进行图片压缩和添加水印的操作,你可以使用第三方库来实现。一个常用的库是`vue2-image-upload`。以下是一个简单的步骤来实现图片压缩和添加水印的功能:
1. 首先,安装`vue2-image-upload`库。你可以使用npm或者yarn命令来安装:
```
npm install vue2-image-upload
```
或者
```
yarn add vue2-image-upload
```
2. 在你的Vue组件中引入`vue2-image-upload`库,并在组件的`data`属性中定义一个`file`变量用于存储上传的图片文件。
```vue
<template>
<div>
<image-upload v-model="file"></image-upload>
</div>
</template>
<script>
import ImageUpload from 'vue2-image-upload';
export default {
components: {
ImageUpload
},
data() {
return {
file: null
};
}
};
</script>
```
3. 接下来,你可以使用`canvas`来进行图片压缩和添加水印的操作。在你的Vue组件中,创建一个函数来处理图片上传和添加水印的逻辑。
```vue
<script>
import ImageUpload from 'vue2-image-upload';
export default {
components: {
ImageUpload
},
data() {
return {
file: null
};
},
methods: {
compressAndWatermark() {
const image = new Image();
image.src = URL.createObjectURL(this.file);
image.onload = () => {
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
// 压缩图片到指定尺寸
const maxWidth = 500; // 设置压缩后的最大宽度
const ratio = maxWidth / image.width;
canvas.width = maxWidth;
canvas.height = image.height * ratio;
ctx.drawImage(image, 0, 0, canvas.width, canvas.height);
// 在压缩后的图片上添加水印
ctx.font = '20px Arial';
ctx.fillStyle = 'rgba(255, 255, 255, 0.5)';
ctx.textAlign = 'center';
ctx.fillText('Watermark', canvas.width / 2, canvas.height / 2);
// 将压缩后的图片转换为DataURL格式
const compressedImage = canvas.toDataURL('image/jpeg', 0.8);
// 处理压缩后的图片,比如上传到服务器等操作
// ...
};
}
}
};
</script>
```
4. 最后,在你的Vue组件中调用`compressAndWatermark`函数来触发图片压缩和添加水印的操作。
```vue
<template>
<div>
<image-upload v-model="file"></image-upload>
<button @click="compressAndWatermark">压缩与添加水印</button>
</div>
</template>
```
通过以上步骤,你可以在Vue中实现图片的压缩和添加水印操作。记得根据你的具体需求调整代码中的参数和样式。
vue前端页面添加水印
可以使用CSS和JavaScript实现给Vue前端页面添加水印。以下是一个简单的实现方法:
1. 在Vue组件的created()生命周期函数中,用JavaScript生成一个透明的div并设置它的样式为水印样式,如下所示:
```javascript
created() {
const watermarkDiv = document.createElement('div');
watermarkDiv.classList.add('watermark');
document.body.appendChild(watermarkDiv);
}
```
2. 在CSS文件中设置水印样式,如下所示:
```css
.watermark {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
background-image: url('watermark.png'); //水印图片路径
background-repeat: repeat;
background-opacity: 0.2;
}
```
3. 在Vue组件的destroyed()生命周期函数中移除水印div,如下所示:
```javascript
destroyed() {
const watermarkDiv = document.querySelector('.watermark');
watermarkDiv.parentNode.removeChild(watermarkDiv);
}
```
这样就能够在Vue前端页面中添加水印了。如果需要自定义水印的样式和内容,可以修改CSS和JavaScript代码来实现。