Удалить маску слоя с помощью Actiondescriptor - PullRequest
0 голосов
/ 12 февраля 2019

Я пытался выяснить, как я могу отключить или удалить маску слоя из слоя.Я знаю, как можно использовать actiondescriptor, используя 'RmvL', но мне пока не повезло с этим.

Я использую app.activeDocument.paste(true) (правда, потому что я вставляю его в выделение), если бы я мог обойтичто с помощью чего-то еще я мог бы пропустить удаление масок слоев, потому что с помощью true Photoshop автоматически применяет маску слоев.

Спасибо за помощь!

1 Ответ

0 голосов
/ 12 февраля 2019

Почему вы думаете, что это дескриптор 'RmvL'?Scriptlistener дает нам 'Dlt ' charID.Вот оно, обернутое в функцию:

/**
 * deletes layer mask from active layer
 * @param  if apply is true, mask will be applied, if false — mask will be discarded
 * @return boolean
 */
function deleteMask(apply)
{
    if (apply == undefined) apply = false;
    try
    {
        var desc = new ActionDescriptor();
        var ref = new ActionReference();
        ref.putEnumerated(charIDToTypeID('Chnl'), charIDToTypeID('Chnl'), charIDToTypeID('Msk '));
        desc.putReference(charIDToTypeID('null'), ref);
        desc.putBoolean(charIDToTypeID('Aply'), apply);
        executeAction(charIDToTypeID('Dlt '), desc, DialogModes.NO);
        return true
    }
    catch (e)
    {
        return false
    }
};
...