大马资讯论坛 - 马来西亚中文资讯平台

标题: C# 图片对比是否一样,Comparing Two picture/images-教学 [打印本页]

作者: 资讯王    时间: 2012-6-27 22:17
标题: C# 图片对比是否一样,Comparing Two picture/images-教学
C# 图片对比是否一样,Comparing Two picture/images-教学

使用Byte Array做对比,Use Byte Array for picture/image comparison
  1.         private bool ImageCompareArray(Bitmap firstImage, Bitmap secondImage)
  2.         {
  3.             bool flag = true;
  4.             string firstPixel;
  5.             string secondPixel;

  6.             if (firstImage.Width == secondImage.Width
  7.                 && firstImage.Height == secondImage.Height)
  8.             {
  9.                 for (int i = 0; i < firstImage.Width; i++)
  10.                 {
  11.                     for (int j = 0; j < firstImage.Height; j++)
  12.                     {
  13.                         firstPixel = firstImage.GetPixel(i, j).ToString();
  14.                         secondPixel = secondImage.GetPixel(i, j).ToString();
  15.                         if (firstPixel != secondPixel)
  16.                         {
  17.                             flag = false;
  18.                             break;
  19.                         }
  20.                     }
  21.                 }

  22.                 if (flag == false)
  23.                 {
  24.                     return false;
  25.                 }
  26.                 else
  27.                 {
  28.                     return true;
  29.                 }
  30.             }
  31.             else
  32.             {
  33.                 return false;
  34.             }
  35.         }
复制代码
使用Base 64做对比,Use Base 64 for picture/image comparison
  1.         public static bool ImageCompareString(Bitmap firstImage, Bitmap secondImage)
  2.         {
  3.             MemoryStream ms = new MemoryStream();
  4.             firstImage.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
  5.             String firstBitmap = Convert.ToBase64String(ms.ToArray());
  6.             ms.Position = 0;

  7.             secondImage.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
  8.             String secondBitmap = Convert.ToBase64String(ms.ToArray());

  9.             if (firstBitmap.Equals(secondBitmap))
  10.             {
  11.                 return true;
  12.             }
  13.             else
  14.             {
  15.                 return false;
  16.             }
  17.         }
复制代码





欢迎光临 大马资讯论坛 - 马来西亚中文资讯平台 (http://freeinfo.com.my/) Powered by Discuz! X3.3