工作中经常遇到比较图片的需求,所以去网上搜索了一下,自己写了两个方法:
1. 直接使用Bitmap类对图片的每一个像素进行比较。
优点:简单
缺点:速度慢,当图片尺寸稍大的时候就会很慢(我的方法RemoveSinglePoints性能比较差,当存在差异的像素过多时会花费几十秒)
/// <summary>
/// Compare two images.
/// </summary>
/// <param name="img1">The first image path.</param>
/// <param name="img2">The second image path.</param>
/// <param name="imgDiff">The compare result image path.</param>
/// <param name="tolerance">The compare tolerance.</param>
/// <returns>If the two image are identical return true, else return false.</returns>
private bool CompareImage(string img1, string img2, string imgDiff, int tolerance = 10)
{
// Load the images.
Bitmap bm1 = (Bitmap)Bitmap.FromFile(img1);
Bitmap bm2 = (Bitmap)Bitmap.FromFile(