使用设置复制图层样式(效果)

Copy layer-style(effect) with settings

我正在为 photoshop 编写脚本,我正在寻找一种将图层样式从一个图层复制到另一个图层的方法。应用的图层样式可能会有所不同,所以我必须能够寻找任何可能的样式并复制它。我找到了一些代码来复制图层样式,但不会复制设置。使用脚本侦听器对我帮助不大,因为它都是硬编码的..

有没有办法同时复制样式的设置?以及针对所有可能样式执行此操作的方法?

据我了解,Adobe 在脚本界面中没有任何检索样式或样式属性的方法。显然,这可以通过 Action Manager 代码手动完成。 Adobe 论坛中的 post 讨论了一些实现此目的的方法:How to get the style of a layer using Photoshop Scripting ?

我还没有测试过这个,但这可能是你要找的:

if (app.documents.length > 0 && app.activeDocument.layers.length > 1) {
    transferEffects(app.activeDocument.layers.getByName("styleLayer"), app.activeDocument.activeLayer);
};
// function to copy layer effects of one layer and apply them to another one
function transferEffects(layer1, layer2) {
    app.activeDocument.activeLayer = layer1;
    try {
        var id157 = charIDToTypeID("CpFX");
        executeAction(id157, undefined, DialogModes.ALL);
        app.activeDocument.activeLayer = layer2;
        var id158 = charIDToTypeID("PaFX");
        executeAction(id158, undefined, DialogModes.ALL);
    } catch (e) {
        alert("the layer has no effects");
        app.activeDocument.activeLayer = layer2;
    }
};