我一直在尝试通过extendscript更改Photoshop中的图层效果/颜色叠加图层。我使用的现有代码适用于大多数图案(TIF 文件),除了这个特定的 tif 添加了图层效果。大多数文件都针对脚本中的活动图层,然后填充新的纯色,但使用填充的正常方式对其进行着色会失去所有透明度,并且使用叠加的颜色混合模式并不准确。这些图层添加了图层效果,在 Photoshop 中您可以选择诸如
之类的内容如果我在此处更改颜色,它会正确显示具有适当透明度的颜色。如何在我的 JSX 文件中定位它?这是我常用脚本的代码:
//loop through JSON to color the current layer and export PNG
for (var j = 0; j < countJSON; j++) {
var SWColorNumber = myJSON.colors[j].NUMBER;
var HEXValue = myJSON.colors[j].HEX.replace("#", "");
var fillColor = new SolidColor();
fillColor.rgb.hexValue = HEXValue;
// fill the layer, normal blend, preserve transparency
app.activeDocument.selection.fill(
fillColor,
ColorBlendMode.COLOR,
100,
true
);
我尝试将 ColorBlendMode.COLOR 更改为 ColorBlendMode.OVERLAY。这是不正确的。我(通常)像这样定位图层:
app.activeDocument.activeLayer = myLayer;
var myLayerName = app.activeDocument.layers[i].name;
如何定位与活动图层对应的颜色叠加图层效果?这是一张显示它在图层面板中位置的图片:
我看到有人提到使用 ExtendScript Toolkit,但我不知道如何让这些类型的工具发挥作用。我尝试了另一个脚本来调用执行此操作的操作,但这对我来说也不起作用。有人可以帮我在 Photoshop 中实现这种效果吗?我见过的大多数代码都超出了我的理解范围。我预计会是:
// select layer
app.activeDocument.activeLayer = myLayer;
var myLayerName = app.activeDocument.layers[i].LayerEffects("Color Overlay");
我只知道这个方法,希望对你有帮助。
//select layer and change mode
doc.activeLayer = doc.layers.getByName ("Layer 3");
doc.activeLayer.blendMode = BlendMode.OVERLAY;