Какой Adobe Photoshop CC
быстрый способ добавить отдельные маски по умолчанию (Показать все) к каждому слою в документе с большим количеством слоев (скажем, 100 слоев)?
Мне нужны индивидуальные маски, а не групповые.
Я могу вручную ALT+drag
дублировать маску на другие слои или просто прокрутить выбранный каждый слой, а затем нажать кнопку маски в нижней части панели Layers
, но я пытаюсь создать автоматизированный процесс, поэтому это нежелательные варианты.
Возможно, есть скриптовое решение для добавления отдельных масок полного раскрытия ко всем открытым слоям?
В соответствии с обходным путем здесь, чтобы экспортировать в массовом порядке png-24
изображения общего размера с png-8
частичной прозрачностью, я делаю File
> Scripts
> Load Files Into Stack
, выбираю все слои, щелкаю правой кнопкой мыши по выделению и, наконец, выбираю Quick Export as png-8
из всплывающего меню параметров щелчка.
Единственная проблема в том, что Quick Export as png-8
сохраняет обрезанную копию, не учитывая размер холста. Переход по отдельности Export As
будет работать, если я вручную изменю размер холста, но выбрав все слои и установив общий размер холста, центрирует изображения...
Но я нашел способ получить правый щелчок, Quick Export...
чтобы уважать положение холста, а не обрезать - добавить маску заполнения 100% (чтобы все было белым). Это не влияет на изображение, кроме как предохранить прозрачную ограничивающую рамку от обрезки Quick Export...
/ Export As
.
Однако добавление отдельных масок сводит на нет индивидуальную экономию времени. Следовательно, мне нужно найти способ быстро добавить их на каждый слой (групповая маска не работает).
Я думаю, что самым простым способом было бы создать действие с назначенной клавишей F. Вам все равно придется нажимать на клавишу... но так будет быстрее.
Layer > Layer Mask > Reveal All
[
) — это должно выделить следующий слой в стеке слоев.Теперь выделите слой, нажмите назначенную клавишу F... и продолжайте нажимать, пока не дойдете до нижней части стека слоев.
Я уверен, что это тоже можно было бы написать в сценарии, но это не в моей компетенции.
Я нашел скрипт, который добавляет маску слоя «Скрыть все» к каждому слою здесь.
Поэтому я еще немного покопался и понял, как изменить его с «Скрыть все» на «Показать все».
Ну вот:
// RevealMask-AllLayers – Adds a 'Reveal All' mask to all layers
#target photoshop
if(app.documents.length>0){
var docRef = activeDocument;
var layerNum = docRef.layers.length;
for(var i=0;i<layerNum;i++){
docRef.activeLayer = docRef.layers[i];
if(!docRef.activeLayer.isBackgroundLayer){
try{addMask ()}
catch(e){}
}
}
}
else{alert('There are no open files')};
function addMask(){
var idMk = charIDToTypeID( "Mk " );
var desc2 = new ActionDescriptor();
var idNw = charIDToTypeID( "Nw " );
var idChnl = charIDToTypeID( "Chnl" );
desc2.putClass( idNw, idChnl );
var idAt = charIDToTypeID( "At " );
var ref1 = new ActionReference();
var idChnl = charIDToTypeID( "Chnl" );
var idChnl = charIDToTypeID( "Chnl" );
var idMsk = charIDToTypeID( "Msk " );
ref1.putEnumerated( idChnl, idChnl, idMsk );
desc2.putReference( idAt, ref1 );
var idUsng = charIDToTypeID( "Usng" );
var idUsrM = charIDToTypeID( "UsrM" );
var idHdAl = charIDToTypeID( "RvlA" );
desc2.putEnumerated( idUsng, idUsrM, idHdAl );
executeAction( idMk, desc2, DialogModes.NO );
}