用js写一个对比图片的程序
时间: 2023-05-12 08:05:35 浏览: 253
可以使用canvas来实现对比图片的程序,以下是一个简单的示例代码:
```javascript
function compareImages(img1, img2) {
var canvas = document.createElement("canvas");
var ctx = canvas.getContext("2d");
var diff = 0;
// 设置画布大小
canvas.width = Math.max(img1.width, img2.width);
canvas.height = Math.max(img1.height, img2.height);
// 绘制图片
ctx.drawImage(img1, 0, 0);
ctx.drawImage(img2, 0, 0);
// 获取像素数据
var data1 = ctx.getImageData(0, 0, img1.width, img1.height).data;
var data2 = ctx.getImageData(0, 0, img2.width, img2.height).data;
// 对比像素
for (var i = 0; i < data1.length; i += 4) {
if (data1[i] !== data2[i] || data1[i+1] !== data2[i+1] || data1[i+2] !== data2[i+2]) {
diff++;
}
}
// 计算差异度
var totalPixels = img1.width * img1.height;
var diffPercentage = (diff / totalPixels) * 100;
return diffPercentage;
}
// 使用示例
var img1 = new Image();
img1.src = "image1.jpg";
var img2 = new Image();
img2.src = "image2.jpg";
img1.onload = img2.onload = function() {
var diffPercentage = compareImages(img1, img2);
console.log("差异度:" + diffPercentage + "%");
};
```
这段代码会创建一个canvas元素,并在其中绘制两张图片,然后获取像素数据进行对比,最终返回差异度。可以根据差异度来判断两张图片的相似度。