1. 前言
由於相比較兩張圖片是否是相同,如果通過像素點比較感覺速度比較慢,當很多圖片進行比較時,效率就低很多了。由於每個文件md5基本上是唯一的,所以用獲取文件的md5來判斷是否相同文件。
2. 代碼如下:
import java.io.FileInputStream; import java.io.IOException; import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.io.IOUtils; public class TestMd5 { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub String path="C:\\Test\\img\\p1.jpg"; String path2="C:\\Test\\img\\p2.jpg"; FileInputStream fis= new FileInputStream(path); String md5 = DigestUtils.md5Hex(IOUtils.toByteArray(fis)); IOUtils.closeQuietly(fis); System.out.println("p1_MD5:"+md5); FileInputStream fis2= new FileInputStream(path2); String md52 = DigestUtils.md5Hex(IOUtils.toByteArray(fis2)); IOUtils.closeQuietly(fis2); System.out.println("p2_MD5:"+md52); } }
執行后的log如下:
p1_MD5:699418360ea96b76c0d4cb701decd2e7
p2_MD5:699418360ea96b76c0d4cb701decd2e7
3. 圖片資源
link: p1.jpg p2.jpg is just rename p1.jpg.