我有几张图片,都是 System.Drawing.Image 格式的图片
分别为 
img1,img2,img3每张图片的 width 和 height 都是相同的。只是图片中绝大部分的像素的颜色不同。请问如何用 C# 程序区分出这几张图片呢?我的方法是用 new bitmap(img) ,然后用 bmp.getPixel(x,y) 取得某个像素点来区分它们。
事实上这个方法效率很低。
请问有什么更好的方法,比如通过图片大小来区分它们?望高手赐教,100分馈赠,谢谢大家。

解决方案 »

  1.   

    img1.ImageSize    这样应该可以吧!
      

  2.   

    private bool ImageEquals(Bitmap bmp1,Bitmap bmp2)
            {
                for (int i = 0; i < bmp1.Width; i++)
                {
                    for (int j = 0; j < bmp1.Height; j++)
                    {
                        if (bmp1.GetPixel(i, j) != bmp2.GetPixel(i, j))
                            return false;
                    }
                }
                return true;
            }或System.Runtime.InteropServices.Marshal.Copy
    字节比较
      

  3.   

    最笨的方法,载入到控件里,size自适应,具体哪个属性忘记了,然后再再获取空间的SIZE..哈哈
      

  4.   

    你说的大小是长宽 还是 Byte你前面说了大小一样的  可以用PictureBox加载图片如果 是证件照那种  可以根据背景色判断 
    如果背景色相同 估计只有肉眼判断了
      

  5.   

    如果只是想知道这两个图片是否一样而不是哪里不一样,读出来流逐个字节比较,遇到不同的字节就返回效果应该好点吧。或者将字节流做个Hash,比较Hash值应该也很快。