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

 找回密码
 注册
搜索
打印 上一主题 下一主题

C# 图片对比是否一样,Comparing Two picture/images-教学

[复制链接]
跳转到指定楼层
1#
发表于 2012-6-27 22:17:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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.         }
复制代码

手机版|大马资讯论坛  

GMT+8, 2024-4-23 15:50 , Processed in 0.028294 second(s), 11 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表