最近接到一个CASE,其中有一个功能要能筛选出一个目录中完全相同的重复图片.我以前没有接触过此类功能.特来请教下实现的思路.PS:好象我们的QQ在保存QQ表情的时候都会提示是否有相同的存在?

解决方案 »

  1.   

    顶~我也正想怎么真正判断两张图片是否完全相同的问题。高手来啊
      
    -----------------------------------------------
    msn:[email protected]
    请给我个与您交流的机会
      

  2.   

    http://developer.51cto.com/art/200703/42404.htm
      

  3.   

    File类是否有这样的功能,查一下看看。
      
    -----------------------------------------------
    msn:[email protected]
    请给我个与您交流的机会
      

  4.   

    思路如下:
    首先按照大小排序,然后判断大小,如果大小一致,则开始采样(随机获取相同位置的像素),如果值(RGB)也一样,则可以初步认为是相同的。
      

  5.   

    yangfan369(扬帆远行) ( ) 信誉:100 的思路感觉不错!顶
      

  6.   

    你如果只是以图片名称为判断条件,那就办,你做个遍历就可以了,看看有没有相同的名字如果是以图片内容为判断条件,引用楼上的"首先按照大小排序,然后判断大小,如果大小一致,则开始采样(随机获取相同位置的像素),如果值(RGB)也一样,则可以初步认为是相同的。"
      

  7.   

    public bool AreImagesSame(Bitmap image1, Bitmap image2)
            {
                if (image1.Width != image2.Width || image1.Height != image2.Height)
                {
                    return false;
                }
                int width=image1.Width;
                int height=image1.Height;
                Color color1;
                Color color2;
                for (int i = 0; i < width; i++)
                {
                    for (int j = 0; j < height; j++)
                    {
                        color1 = image1.GetPixel(i, j);
                        color2 = image2.GetPixel(i, j);
                        if (!color1.Equals(color2))
                        {
                            return false;
                        }
                    }
                }
                return true ;
            }
    调用: Bitmap image1 = (Bitmap)Bitmap.FromFile("jjj.bmp");
     Bitmap image2 = (Bitmap)Bitmap.FromFile("jjjj.gif");
     Check check = new Check();
     AreImagesSame(image1, image2);可以比较两个图片是否相同.