以下是一个简单的 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 中展示结果图片,或者将其保存到本地。

注意,此代码只能比较两张图片的像素点是否相同,而不能比较图片中的物体是否相同。如果需要比较物体是否相同,需要使用图像识别和计算机视觉技术。

C# Winform 图片比较工具:快速找出两张图片的差异

原文地址: https://www.cveoy.top/t/topic/oq6Y 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录