编写Photoshop差异Blendmode脚本

时间:2011-11-12 22:06:35

标签: javascript photoshop photoshop-script

我经常有两组图片以相同的方式命名,我想编写检查差异的过程。我正在寻找一个基本检查,如果两个图像之间没有差异,丢弃其中一个,如果有一个像素差异,请保持两者。对于那些质疑在photoshop中执行此操作的智慧的人来说,这是对已经运行的另一个脚本的补充,这个可选的检查将有助于减少我必须上传的文件数量。我很感激你的帮助。

1 个答案:

答案 0 :(得分: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之外的任何颜色值是否在直方图中有任何像素。

我认为这两张图片大小相同。