Я новичок в написании сценариев в фотошопе, и кажется, что не все JavaScript одинаковы.То, что я пытаюсь сделать, у меня есть список слоев, которые выглядят следующим образом:
Cat pic 1.jpg
Cat pic 1.jpg copy
Dog pic1.jpg
Dog pic 1.jpg copy
....
Я хочу объединить те, которые являются копиями друг друга, так что "Cat pic 1.jpg"и" Cat pic 1.jpg copy "и создайте один слой из двух, который будет просто" Cat pic 1.jpg ".
Все они активны, и нет никаких фигур или чего-либо еще, поэтому это просто слои.У меня около 300 слоев, и каждый из них в точности такой.Существует дубликат каждого слоя, а имя имеет копию в конце.Я написал сценарий, но я не знаю, как объединить два слоя.Мой код не работает.Он соединен с кем-то, кто пытается отсортировать слои по алфавиту.
По сути, у меня был список слоев, и я перевернул его по горизонтали, и теперь мне нужно объединить левую половину с правой.Слева без слова «копия».
Любая помощь очень ценится, ребята!Пожалуйста, не стесняйтесь игнорировать весь мой код, я абсолютно не уверен в этом.
Заранее спасибо!
#target photoshop
var layers = activeDocument.layers;
var layersArray = [];
var len = layers.length;
// store all layers in an array
for (var i = 0; i < len; i++) {
layersArray.push(layers[i]);
}
var layersOrig= [];
for (var i = 0; i < len; i++) {
var cond = myIndexOf(layersArray[i], "copy");
if (cond === -1) {
layersOrig.push(layersArray[i]);
delete layersArray[i];
}
}
layersOrig.sort();
// sort layer top to bottom
layersArray.sort();
for (var i = 0; i < len; i++) {
layersArray[i] = merge(layersOrig[i], layersArray[i];
}
for (i = 0; i < len; i++) {
layersArray[i].move(layers[i], ElementPlacement.PLACEBEFORE);
}
function myIndexOf(array, x){
var n=-1, N=array.length;
while (++n<N && array[n]!==x);
return n<N ? n : -1;
};