Nano Hash - криптовалюты, майнинг, программирование

Как использовать JavaScript для перемещения слоя в Photoshop, используя относительные координаты

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


Ответы:


1

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

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

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

//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 );
}
15.04.2013
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..