2013-04-14 1 views
0

Я только начинаю работать с JS в Photoshop. Мне нужно выровнять 2 или более слоя между ними? например, сверху. Каждый слой имеет маску, меньшую, чем изображение. Используя меню Photoshop, я могу выравнивать только изображения без их масок. Я хочу выровнять изображения на их масках - видимые через маску на изображении на том же уровне. Спасибо!Как использовать слой перемещения JavaScript в Photoshop с использованием относительных координат

ответ

0

mmЕсли ​​вы хотите преобразовать слои (или маски слоя), используйте эти три функции. Вы не указали, какую версию PS вы используете.

  • selectmask - выбирает маску слоя в слое в качестве активного
  • linkUnlinkLayermask - будет или отменить связь между маску слоя, чтобы это слой
  • transformLayerLayer - смещение слоя (или layermask) с помощью ряда пикселей

Вы должны иметь возможность манипулировать слоями и выровнять их по мере необходимости.

//pref pixels 
app.preferences.rulerUnits = Units.PIXELS; 

var deltaX = 0 
var deltaY = 20 

selectMask("Layer 1") 
linkUnlinkLayermask(false) 
transformLayer(deltaX, deltaY) 

function transformLayer(moveX, moveY) 
{ 
    var id442 = charIDToTypeID("Trnf"); 
    var desc93 = new ActionDescriptor(); 
    var id443 = charIDToTypeID("null"); 
    var ref64 = new ActionReference(); 
    var id444 = charIDToTypeID("Lyr "); 
    var id445 = charIDToTypeID("Ordn"); 
    var id446 = charIDToTypeID("Trgt"); 
    ref64.putEnumerated(id444, id445, id446); 
    desc93.putReference(id443, ref64); 
    var id447 = charIDToTypeID("FTcs"); 
    var id448 = charIDToTypeID("QCSt"); 
    var id449 = charIDToTypeID("Qcsa"); 
    desc93.putEnumerated(id447, id448, id449); 
    var id450 = charIDToTypeID("Ofst"); 
    var desc94 = new ActionDescriptor(); 
    var id451 = charIDToTypeID("Hrzn"); 
    var id452 = charIDToTypeID("#Pxl"); 
    desc94.putUnitDouble(id451, id452, deltaX); 
    var id453 = charIDToTypeID("Vrtc"); 
    var id454 = charIDToTypeID("#Pxl"); 
    desc94.putUnitDouble(id453, id454, deltaY); 
    var id455 = charIDToTypeID("Ofst"); 
    desc93.putObject(id450, id455, desc94); 
    executeAction(id442, desc93, DialogModes.NO); 
} 

function selectMask(LayerName) 
{ 
    var id2380 = charIDToTypeID("slct"); 
    var desc475 = new ActionDescriptor(); 
    var id2381 = charIDToTypeID("null"); 
    var ref352 = new ActionReference(); 
    var id2382 = charIDToTypeID("Chnl"); 
    var id2383 = charIDToTypeID("Chnl"); 
    var id2384 = charIDToTypeID("Msk "); 
    ref352.putEnumerated(id2382, id2383, id2384); 
    var id2385 = charIDToTypeID("Lyr "); 
    ref352.putName(id2385, LayerName); 
    desc475.putReference(id2381, ref352); 
    var id2386 = charIDToTypeID("MkVs"); 
    desc475.putBoolean(id2386, false); 
    executeAction(id2380, desc475, DialogModes.NO); 
} 

    function linkUnlinkLayermask(bool) 
{ 
    var id2415 = charIDToTypeID("setd"); 
    var desc483 = new ActionDescriptor(); 
    var id2416 = charIDToTypeID("null"); 
    var ref359 = new ActionReference(); 
    var id2417 = charIDToTypeID("Lyr "); 
    var id2418 = charIDToTypeID("Ordn"); 
    var id2419 = charIDToTypeID("Trgt"); 
    ref359.putEnumerated(id2417, id2418, id2419); 
    desc483.putReference(id2416, ref359); 
    var id2420 = charIDToTypeID("T "); 
    var desc484 = new ActionDescriptor(); 
    var id2421 = charIDToTypeID("Usrs"); 
    desc484.putBoolean(id2421, bool); 
    var id2422 = charIDToTypeID("Lyr "); 
    desc483.putObject(id2420, id2422, desc484); 
    executeAction(id2415, desc483, DialogModes.NO); 
} 
Смежные вопросы