Создание сценариев Photoshop Difference Blendmode - PullRequest
2 голосов
/ 13 ноября 2011

У меня регулярно есть два набора картинок, названных одинаково, и я хотел бы написать сценарий процесса проверки на различия.Я ищу базовую проверку, если между двумя изображениями нет различий, откажитесь от одного из них, если есть разница в один пиксель, сохраните оба.Для тех, кто сомневается в целесообразности этого в фотошопе, это дополнение к другому уже запущенному скрипту, и эта дополнительная проверка поможет уменьшить количество файлов, которые я должен загрузить.Буду признателен за помощь.

1 Ответ

4 голосов
/ 16 ноября 2011

Если вам действительно нужно сделать это в 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, в пикселях гистограммы.

Я предположил, что два изображения имеют одинаковый размер.

...