У меня проблемы с очень простой задачей в сценарии для фотошоп, но я боюсь, что это не описано в других местах в Интернете.Как обрезать слой в скрипте photoshop
Я просто хочу инвертировать существующий выбор, удалить содержимое текущего слоя, а затем отменить выбор.
Конечно, это часть более крупной программы, и если вы заинтересованы, я могу предоставить все детали.
Up знать я делаю:
// Get current document and current layer
var doc = app.activeDocument;
var activeLay = doc.activeLayer;
var a=0
// find the current layer and assign its code to the variable a
for(i=doc.layers.length-1; i >=0;)
{
if(doc.layers[i]==activeLay)
{
a=i;
alert("a"+a);
break;
}
else{ i--; }
alert ("i"+i);
}
// Now cycle remaining layer under the exsiting one, and jump the selection
// and delete the outer area of selection for each layer
for(i=a-1; i >=0;)
{
// make layer i active
doc.activeLayer=doc.layers[i];
alert ("active layer"+i);
// where is my selection in regards to the active layer?
var s = app.activeDocument.selection.bounds;
var xSo=s[0];
var ySo=s[1];
var xLo = activeLay.bounds[0].value;
var yLo = activeLay.bounds[1].value;
// I have to go from actual selection poisition to the NEXT layer... which i just made active...
DeltaX=xLo-s[0];
DeltaY=ySo-s[1];
doc.selection.translateBoundary(DeltaX,DeltaY);
//Now invert selection and delete
doc.selection.invert
doc.selection.fill (fillType, mode, 0, preserveTransparency) // ??? here what i cannot do?
doc.selection.invert
i--;
}
Примечание: вы делаете глобальные переменные в своих циклах 'for'. – gcampbell
Спасибо, но это не большая проблема, я думаю ... –