gpt4 book ai didi

javascript - 如何使用 photoshop 脚本修改混合选项?

转载 作者:行者123 更新时间:2023-11-30 18:37:59 25 4
gpt4 key购买 nike

我有一个循环遍历不同层的 Photoshop Javascript 脚本,我想根据层的名称为每个层提供不同的外发光。

有人可以举例说明如何以编程方式更改 ArtLayer 类的混合选项吗?

最佳答案

不幸的是,没有简单的方法来添加图层样式。

.applyStyle("Puzzle (Image)") 但其他样式未包含在文档中,我在任何地方都找不到其他样式。

所以你必须使用变通方法(棘手和复杂的过程)。

第 1 步(如果您想要现成的解决方案,请跳过)

首先,您需要执行操作(向图层添加外发光),然后转换为 .jsx 脚本。

您需要使用此脚本进行转换: http://ps-scripts.cvs.sourceforge.net/viewvc/ps-scripts/xtools/apps/ActionToJavascript.jsx?revision=1.29

从 Ps 或 ExtendScript 运行它,选择您的操作并保存。

第二步

在您新创建的脚本中,您会看到可怕且不可读的代码,它会立即运行,但如果您想使用不同的设置(颜色、不透明度、混合模式等),则需要创建函数。

这是干净的版本。

cTID = function(s){ return app.charIDToTypeID(s); };
sTID = function(s){ return app.stringIDToTypeID(s); };
// Add Style: Glow
function addStyleGlow( R, G, B, blendingMode, opacity, spread, size ){
var desc1 = new ActionDescriptor();
var ref1 = new ActionReference();
ref1.putProperty(cTID('Prpr'), cTID('Lefx'));
ref1.putEnumerated(cTID('Lyr '), cTID('Ordn'), cTID('Trgt'));
desc1.putReference(cTID('null'), ref1);
var desc2 = new ActionDescriptor();
desc2.putUnitDouble(cTID('Scl '), cTID('#Prc'), 100);
// Glow color
var desc4 = new ActionDescriptor();
var rgb = new Array();
desc4.putDouble(cTID('Rd '), R);
desc4.putDouble(cTID('Grn '), G);
desc4.putDouble(cTID('Bl '), B);
// Blending mode of the effect
var desc3 = new ActionDescriptor();
desc3.putBoolean(cTID('enab'), true);
desc3.putEnumerated( cTID('Md '), cTID('BlnM'), cTID(blendingMode) );
desc3.putObject(cTID('Clr '), sTID("RGBColor"), desc4);
// Opacity
desc3.putUnitDouble(cTID('Opct'), cTID('#Prc'), opacity);
desc3.putEnumerated(cTID('GlwT'), cTID('BETE'), cTID('SfBL'));
// Spread
desc3.putUnitDouble(cTID('Ckmt'), cTID('#Pxl'), spread);
// Size
desc3.putUnitDouble(cTID('blur'), cTID('#Pxl'), size);
// Noise
desc3.putUnitDouble(cTID('Nose'), cTID('#Prc'), 0);
// Quality: Jitter
desc3.putUnitDouble(cTID('ShdN'), cTID('#Prc'), 0);
desc3.putBoolean(cTID('AntA'), true);
var desc5 = new ActionDescriptor();
desc5.putString(cTID('Nm '), "Linear");
desc3.putObject(cTID('TrnS'), cTID('ShpC'), desc5);
// Quality: Range
desc3.putUnitDouble(cTID('Inpr'), cTID('#Prc'), 50);
desc2.putObject(cTID('OrGl'), cTID('OrGl'), desc3);
desc1.putObject(cTID('T '), cTID('Lefx'), desc2);
executeAction(cTID('setd'), desc1, DialogModes.NO);
}; // End of Add Style: Glow

第三步

您将需要另一个脚本文件来调用该函数,将其放在同一文件夹中(将“antoxa_myGlow.jsx”替换为您的脚本名称)

//@include "antoxa_myGlow.jsx"
// R, G, B, blend mode, opacity, spread, size
addStyleGlow(255, 255, 54, 'Nrml', 75, 0, 5);

目前它只适用于一个选定的图层,如果你选择多个图层,它会给你错误。我还不知道如何将函数应用于多个选定图层。

关于javascript - 如何使用 photoshop 脚本修改混合选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7696212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com