2011-11-12 52 views
2

我經常有兩組圖片命名相同的方式,我想腳本檢查差異的過程。我正在尋找基本檢查,如果兩個圖像之間沒有差異,請丟棄其中一個,如果存在單個像素差異,則保留兩個圖像。對於那些質疑在Photoshop中做到這一點的人,這是另一個已經運行的腳本的補充,這個可選的檢查將有助於減少我必須上傳的文件數量。我將不勝感激。腳本Photoshop差異混合模式

+0

爲什麼你不只是'md5()'每集中的每張圖片並檢查重複? – Blender

+0

我想在腳本保存所做更改之前插入檢查。因此,我正在檢查腳本的結果是否與上次相同,如果是,我不打擾他們保存。但是,是的,對圖像進行md5檢查將是我可以迴避的合理解決方案。 – phill

回答

4

如果你真的不得不這樣做在Photoshop中,這是我想提出的:

var doc1 = app.open(new File("~/Desktop/test1.bmp")); 
var doc2 = app.open(new File("~/Desktop/test2.bmp")); 

doc2.selection.selectAll(); 
doc2.selection.copy(); 

app.activeDocument = doc1; 
var newLayer = doc1.paste(); 
newLayer.blendMode = BlendMode.DIFFERENCE; 

var histogram = doc1.histogram; 
for (var i = 1; i < histogram.length; ++i) { 
    if (histogram[i] > 0) { 
     alert('Different!'); 
     break; 
    } 
} 

我第二張圖片粘貼到第一位,並將所得層的混合模式設置爲差。如果兩張照片完全相同,則生成的照片應全黑。因此,我檢查除0以外的任何顏色值是否有直方圖中的任何像素。

我認爲這兩個圖像具有相同的大小。