C# Winform 图片比较工具:快速找出两张图片的差异
以下是一个简单的 C# Winform 代码,用于比较两张图片并展示它们的不同处:
private void CompareImages(string image1Path, string image2Path)
{
// 加载两张图片
Bitmap bmp1 = new Bitmap(image1Path);
Bitmap bmp2 = new Bitmap(image2Path);
// 确认两张图片的大小一致
if (bmp1.Size != bmp2.Size)
{
MessageBox.Show('两张图片大小不一致!');
return;
}
// 创建一个空白图片,用于绘制不同处
Bitmap result = new Bitmap(bmp1.Width, bmp1.Height, PixelFormat.Format32bppArgb);
// 创建一个 Graphics 对象,用于在 result 上绘制不同处
Graphics g = Graphics.FromImage(result);
g.Clear(Color.White);
// 遍历每个像素点,比较颜色值
for (int x = 0; x < bmp1.Width; x++)
{
for (int y = 0; y < bmp1.Height; y++)
{
Color c1 = bmp1.GetPixel(x, y);
Color c2 = bmp2.GetPixel(x, y);
// 如果颜色值不同,则在 result 上绘制一个红色像素点
if (c1 != c2)
{
result.SetPixel(x, y, Color.Red);
}
}
}
// 展示或保存结果图片
pictureBox1.Image = result;
// 可以将结果图片保存到本地
//result.Save('result.png', ImageFormat.Png);
}
在上面的代码中,我们首先加载了两张图片,然后遍历每个像素点,比较颜色值。如果颜色值不同,则在结果图片上绘制一个红色像素点。最后,可以选择在一个 PictureBox 中展示结果图片,或者将其保存到本地。
注意,此代码只能比较两张图片的像素点是否相同,而不能比较图片中的物体是否相同。如果需要比较物体是否相同,需要使用图像识别和计算机视觉技术。
原文地址: https://www.cveoy.top/t/topic/oq6Y 著作权归作者所有。请勿转载和采集!