2011-11-12 6 views
2

私は定期的に同じ名前の写真を2セット持っています。私は違いを確認するプロセスをスクリプトにしたいと思います。私は基本的なチェックを探していますが、2つの画像に違いがない場合は、1つのピクセルの違いがある場合は、それらの1つを破棄し、両方を保ちます。 Photoshopでこれを行うことの知恵に疑問を抱く人にとって、これはすでに実行中の別のスクリプトへの追加であり、このオプションのチェックはアップロードするファイルの数を減らすのに役立ちます。私は助けに感謝します。Scripting Photoshop Difference Blendmode

+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; 
    } 
} 

私は最初のものに二画像を貼り付け、その差に得られる層のブレンドモードを設定します。 2つの画像が同一である場合、結果の画像はすべて黒でなければならない。したがって、0以外の色の値にヒストグラムのピクセルがあるかどうかを確認します。

2つの画像のサイズが同じであると仮定しました。