怎样用程序判断两张图片是否相同?

cystudio 2010-10-15 02:00:11
我有两张一模一样的jpg图片,怎么样用程序比对这两张图片是否相同?

我把这两张图片用二进制读出来,却有一小部份byte不相同
如果把这两张图片都转成bmp格式后,再比对二进制流,就全相同了,这是为什么?
...全文
1469 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
vs_jymao 2011-11-02
  • 打赏
  • 举报
回复
正想看呢.
jimh 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 fthmko 的回复:]

对比我就不说了。
两个jpg如果是copy出来的,那肯定一样。
如果仅内容相同,但来源不同的话,可能是因为jpg文件头、jpg编码版本不同。
jpg中不仅有图像数据,还有一些附加信息,如exif等。bmp就没有。
[/Quote]
所以,还需要了解jpg文件格式,把文件其他信息去掉,但图片格式有很多,如果还有gif等格式呢?一个一个枚举太麻烦了,最后找一款软件,先把所有文件转成raw文件格式,这是最原始的文件格式,计算一个md5来比较就可以了,为什么不用bmp呢,因为bmp还是有颜色转换表等数据,可以不一样的的转换表,但结果一样。只有raw才是最原始的像素表达方式,就是文件大了一点。
cystudio 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 fthmko 的回复:]
对比我就不说了。
两个jpg如果是copy出来的,那肯定一样。
如果仅内容相同,但来源不同的话,可能是因为jpg文件头、jpg编码版本不同。
jpg中不仅有图像数据,还有一些附加信息,如exif等。bmp就没有。
[/Quote]
jpg的文件头有多少位?用byte取出来,多少位之后是图像信息
臭写代码的 2010-10-15
  • 打赏
  • 举报
回复
理论上没有完全相同的两种图片。
zhuxi89 2010-10-15
  • 打赏
  • 举报
回复
学习中,
Olive_Guo 2010-10-15
  • 打赏
  • 举报
回复
学习,关注中…
fthmko 2010-10-15
  • 打赏
  • 举报
回复
对比我就不说了。
两个jpg如果是copy出来的,那肯定一样。
如果仅内容相同,但来源不同的话,可能是因为jpg文件头、jpg编码版本不同。
jpg中不仅有图像数据,还有一些附加信息,如exif等。bmp就没有。
cystudio 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 luminji 的回复:]
想要判断两张图片是否相同,求文件的HASH就行。
[/Quote]
试过了,算出来的hash码也不同

[Quote=引用 2 楼 jason_dct 的回复:]
二进制不行吧, 只能用像素试试。 B超和CT 图像时这么搞的,但是 那个Dcom格式的。
[/Quote]
像素怎么取?有没有代码片段
_Static_ 2010-10-15
  • 打赏
  • 举报
回复
虽然不知道,但期待答案。。。。。
totodele 2010-10-15
  • 打赏
  • 举报
回复
坐等高手!
xiaotiange 2010-10-15
  • 打赏
  • 举报
回复
我认为,转换成十六进制码比较
段传涛 2010-10-15
  • 打赏
  • 举报
回复
二进制不行吧, 只能用像素试试。 B超和CT 图像时这么搞的,但是 那个Dcom格式的。
  • 打赏
  • 举报
回复
想要判断两张图片是否相同,求文件的HASH就行。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧