Adobe Photoshop CS/CS2/CS3/CS4編 同じ画像があるか調べる

たくさん画像があると、同じ内容の画像のコピーなどがたくさんできてしまうこともあります。また、あちこちから画像を収拾していると、以前収拾した画像と同じものまで収拾してしまうことがあります。また、似たような画像なのにちょっと違うとか、そういう違いをぱっと確認したいこともあります。
そこで以下のスクリプトを使うと最初に指定した画像との差分(画像の違い)をチェックすることができます。このスクリプトは最初に基本となる画像を選択します。次に調べたい画像があるフォルダを選択します。最後に結果を保存するフォルダを指定します。
生成された画像をAdobe Bridgeで確認すれば差分がぱっと見て分かるという仕組みです。画像内容が同じなら生成される画像は真っ黒になるので、見ればすぐにわかります。


function imageChecker(){
var sfilename = File.openDialog("比較元の画像ファイルを指定してください");
if (!sfilename) return;
var sfolder = Folder.selectDialog("比較する画像があるフォルダを選択してください");
if (!sfolder) return;
var savefolder = Folder.selectDialog("結果を保存するフォルダを選択してください");
if (!savefolder) return;
var srcFileObj = new File(sfilename);
var sUnit = preferences.rulerUnits;
preferences.rulerUnits = Units.PIXELS;

app.open(srcFileObj); // 画像ファイルを開く
activeDocument.flatten(); // 画像を統合する
activeDocument.selection.selectAll();
activeDocument.activeLayer.copy(); // コピー
var srcW = activeDocument.width.value; // 横幅
var srcH = activeDocument.height.value; // 縦幅

var fileList = sfolder.getFiles("*.jpg");
for(var i=0; i<fileList.length; i++){
try{
app.open(fileList[i]);
activeDocument.resizeImage(srcW,srcH); // 解像度と手法も場合によっては指定する
activeDocument.paste();
activeDocument.activeLayer.blendMode = BlendMode.DIFFERENCE;
activeDocument.flatten(); // 画像を統合する
var savefs = savefolder + "/" + fileList[i].name;
activeDocument.saveAs(new File(savefs));
activeDocument.close(SaveOptions.DONOTSAVECHANGES); // 保存せずに閉じる
}catch(e){}
}
preferences.rulerUnits = sUnit;
try{
activeDocument.close(SaveOptions.DONOTSAVECHANGES); // 保存せずに閉じる
}catch(e){}
}
imageChecker();


[サンプルをダウンロード]