2010-07-17 46 views
25

比較2張圖片以查看它們是否都是相同的文件很容易扔掉MD5文件,但是通過使用PHP GD來確定2張圖片是否相同的兩個圖像。如果我們在哪裏得到兩者的區別,而且全是白色的(id爲白色甚至是黑色),那麼我們現在就可以知道它們都是同一張照片了嗎?比較php中的2張圖片

另外一點:id想知道是否有可能獲得2張相同大小的圖像來創建洋蔥皮效果,1%和50%的透明度爲50%。

回答

9

libpuzzle是一個可以比較圖像的PHP擴展。

+0

我在找這樣的東西,謝謝! – 2013-06-29 00:26:09

13
$md5image1 = md5(file_get_contents($image1)); 
$md5image2 = md5(file_get_contents($image2)); 
if ($md5image1 == $md5image2) { 

} 
+8

爲什麼不使用md5_file()? – Jason 2012-11-12 01:37:09

+5

這實際上是一個文件比較。與其說這是一個問題所在的圖像比較。 – 2013-09-20 20:45:31

+0

@Jason爲什麼不只是($ image1 == $ image2) – Peter 2013-12-16 14:30:59

0

如果你只是比較兩個文件,然後哈希數據,然後比較是完美的解決方案。如果您比較大量的文件,那麼最好根據大小對它們進行排序,然後僅使用相同的大小進行比較。

3

在這個Stackoverflow thread上詢問過類似的問題,我開發了一些供我自己使用的東西。張貼在這裏,以便它可以幫助他人。

它需要兩個(或更多的圖像),併爲您提供有關檢查它們之間差異的選項。像使用分辨率和嚴格的選項。

我寫了一個比較全面的blogpost on it as well

+0

這實際上是一個很棒的腳本。 – 2014-10-06 19:14:12

0

我不得不重複數據刪除的一組JPEG圖像的2個像素對像素的相同圖像之間的差異是:

  • 不同的元數據例如圖像具有不同的IFD0:修改日期
  • 不同的二進制數據例如圖像進行無損由不同的軟件壓縮

我所用的溶液如下:

  • 使用createimagefromjpeg功能
  • 保存使用imagegd2
  • 比較GD2中GD2格式的圖像打開圖像使用散列匹配或字符串比較的版本