Я только начинаю работать с JS в Photoshop. Мне нужно выровнять 2 или более слоев между as? например - сверху. Каждый слой имеет маску, которая меньше изображения. С помощью меню Photoshop я могу выравнивать только изображения, без их масок. Я хочу выравнивать изображения по их маскам - видимым через маску к изображению на одном уровне. Спасибо !
Как использовать JavaScript для перемещения слоя в Photoshop, используя относительные координаты
14.04.2013
Ответы:
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). Они жизненно важны для различных приложений, таких как интеллектуальные..