activeDocument.bitsPerChannel = BitsPerChannelType.SIXTEEN; (没有 MEREGER?)(Extendscript)

问题描述 投票:0回答:2

我真的希望有人能帮忙。我只需要将深度从 32 位更改为 16 位,而不需要合并图层。改变深度的代码如下:

activeDocument.bitsPerChannel = BitsPerChannelType.SIXTEEN;

..但是它会使图像变平(合并所有图层)。

我已经尝试过:

BitsPerChannelType.SIXTEEN.WITOUTMERGER; BitsPerChannelType.SIXTEEN.WithoutMerger;

..但是没用。我当然可以从脚本中调用一个动作,就像应用曝光调整层 app.doAction ("Exposure", "Processing"); 一样。但这只是让我烦恼😉不知道如何。

致以诚挚的问候😊

photoshop extendscript photoshop-script
2个回答
2
投票

要从 32 位转换为 16 位而不合并使用:

var idCnvM = charIDToTypeID( "CnvM" );
var desc27 = new ActionDescriptor();
var idDpth = charIDToTypeID( "Dpth" );
desc27.putInteger( idDpth, 16 );
var idMrge = charIDToTypeID( "Mrge" );
desc27.putBoolean( idMrge, false );
executeAction( idCnvM, desc27, DialogModes.NO );

0
投票

已实施!! :D

function exeAction (Type, subType, Value) {

if (Type == 'Mode') {
    var desc27 = new ActionDescriptor();
    var idCnvM = charIDToTypeID ('CnvM');
    var idMrge = charIDToTypeID ('Mrge');
    desc27.putBoolean (idMrge, false);

        if (subType == 'Depth')
            var idDpth = charIDToTypeID ('Dpth');
        else if (subType == 'Color') {}
    
    desc27.putInteger (idDpth, Value);
    executeAction( idCnvM, desc27, DialogModes.NO );}
}

..经过测试,效果非常好。现在我只需要找到其余的 IDcode 😉,该功能将继续增长。我找到了这个页面 Photoshop 脚本和扩展参考,它将变得有用。比对象模式查看器更好。我还找到了 Photoshop Javascript Ref 2020,但是“Dpth”和“Mrge”都没有列在附录 A 下。 ☹ 尽管如此,我还发现了 ScriptingListener 插件😊😊😊。我希望能找到这样的东西。还没测试过,怀疑这会不会是在公园散步,哈哈。

再次非常感谢您,您的贡献是天赐之物,激励了我:D

© www.soinside.com 2019 - 2024. All rights reserved.