后台返回一张水印图片一张正常图片 前端怎么把水印图片覆盖在正常图片上 js代码实现
时间: 2023-09-14 16:05:59 浏览: 88
可以使用HTML5的canvas将两张图片合并成一张带水印的图片。以下是实现代码:
```javascript
// 创建一个canvas元素
var canvas = document.createElement("canvas");
// 设置canvas的宽度和高度
canvas.width = normalImg.width;
canvas.height = normalImg.height;
// 获取canvas的绘图上下文
var ctx = canvas.getContext("2d");
// 在canvas上绘制正常图片
ctx.drawImage(normalImg, 0, 0);
// 在canvas上绘制水印图片
ctx.drawImage(watermarkImg, 0, 0);
// 获取合成后的图片
var mergedImg = canvas.toDataURL("image/png");
// 将合成后的图片显示在页面上
document.getElementById("mergedImg").src = mergedImg;
```
其中,normalImg和watermarkImg分别是正常图片和水印图片的Image对象,"mergedImg"是显示合成后的图片的img元素的id。
相关问题
小程序后台返回一张水印图片一张正常图片 前端怎么把水印图片覆盖在正常图片上 js代码实现
可以使用CSS的`background`属性,将水印图片设置为背景图片,覆盖在正常图片上。以下是实现的代码:
HTML代码:
```html
<div class="image-container">
<img src="path/to/normal-image.jpg" alt="Normal Image">
</div>
```
CSS代码:
```css
.image-container {
position: relative;
}
.image-container::before {
content: "";
display: block;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: url('path/to/watermark-image.png') center center no-repeat;
opacity: 0.5;
}
```
其中,`.image-container`是包含正常图片的容器,`::before`是伪元素,用于显示水印图片。通过设置`position: relative`,可以让容器成为伪元素的定位参考点。`background`属性设置水印图片的路径,并设置它在容器中居中显示,`opacity`属性设置水印图片的透明度。
这样,水印图片就会覆盖在正常图片上。需要注意的是,如果正常图片的尺寸比容器小,水印图片会在容器中重复显示。可以通过设置`background-size`属性来调整水印图片的大小。
通过canvas实现水印 代码
下面是一个使用canvas实现文本水印的示例代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Canvas水印</title>
<style>
#watermark {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
}
</style>
</head>
<body>
<div id="content">
这是需要加水印的内容
</div>
<canvas id="watermark"></canvas>
<script>
var canvas = document.getElementById('watermark');
var ctx = canvas.getContext('2d');
// 设置canvas的宽高与页面大小一致
canvas.width = document.documentElement.clientWidth;
canvas.height = document.documentElement.clientHeight;
// 绘制水印文本
ctx.font = '24px Arial';
ctx.fillStyle = 'rgba(0, 0, 0, 0.1)';
ctx.textAlign = 'center';
ctx.fillText('Watermark', canvas.width / 2, canvas.height / 2);
// 将canvas转换为base64格式的图片数据
var base64Url = canvas.toDataURL();
// 将图片添加到页面中作为背景
document.getElementById('content').style.backgroundImage = 'url(' + base64Url + ')';
// 校验图片是否被篡改
var img = new Image();
img.src = base64Url;
img.onload = function() {
var md5 = calcMD5(base64Url);
// 发送MD5值到后台进行比对
console.log(md5);
};
// MD5计算函数
function calcMD5(str) {
// TODO:使用JS计算MD5值
}
</script>
</body>
</html>
```
这个示例代码会在页面中添加一个水印,防止用户对内容进行复制或截图。同时,它会计算图片数据的MD5值,并输出到控制台,供后台进行比对。
阅读全文