我有两张一模一样的jpg图片,怎么样用程序比对这两张图片是否相同?我把这两张图片用二进制读出来,却有一小部份byte不相同
如果把这两张图片都转成bmp格式后,再比对二进制流,就全相同了,这是为什么?

解决方案 »

  1.   

    想要判断两张图片是否相同,求文件的HASH就行。
      

  2.   

    二进制不行吧, 只能用像素试试。  B超和CT 图像时这么搞的,但是 那个Dcom格式的。
      

  3.   

    试过了,算出来的hash码也不同像素怎么取?有没有代码片段
      

  4.   

    http://topic.csdn.net/u/20100719/11/d73546e3-f830-48a5-b307-3ec3070c304d.html
      

  5.   

    对比我就不说了。
    两个jpg如果是copy出来的,那肯定一样。
    如果仅内容相同,但来源不同的话,可能是因为jpg文件头、jpg编码版本不同。
    jpg中不仅有图像数据,还有一些附加信息,如exif等。bmp就没有。
      

  6.   

    jpg的文件头有多少位?用byte取出来,多少位之后是图像信息
      

  7.   

    所以,还需要了解jpg文件格式,把文件其他信息去掉,但图片格式有很多,如果还有gif等格式呢?一个一个枚举太麻烦了,最后找一款软件,先把所有文件转成raw文件格式,这是最原始的文件格式,计算一个md5来比较就可以了,为什么不用bmp呢,因为bmp还是有颜色转换表等数据,可以不一样的的转换表,但结果一样。只有raw才是最原始的像素表达方式,就是文件大了一点。