PS将[调整图层]合并到每个单独图层
的有关信息介绍如下:![PS将[调整图层]合并到每个单独图层](/upload/jingyan/2025/1020/2ed08b4a.jpg)
本经验是为了解决本人工作上的一个痛点.
如果你有一个PSD分层的文件, 每个图层都要调整统一的亮度/饱和度/色彩平衡什么的, 且不能出现多余的图层, 那么本经验很适合喜欢偷懒的你
打开文本编辑器、写入以下代码:
//代码开始
app.activeDocument.suspendHistory("Script", "pig()");
// 主入口函数
function pig() {
// 当前打开的文档
var doc = app.activeDocument
// 重要: 必须先选中设置好的 [调整图层]
var adj_layer = doc.activeLayer;
function getLayers(layers) {
for (var i = 0; i < layers.length; i++) {
//判断是否是图层组
if (layers[i].typename == "LayerSet") {
//递归
getLayers(layers[i].layers);
} else if (layers[i].visible) {
// 隐藏的图层不处理
mergeLayerNew(layers[i], adj_layer)
}
}
}
for (var i = 0; i < doc.layers.length; i++) {
if (doc.layers[i].typename == "LayerSet") {
getLayers(doc.layers[i].layers);
}
}
// 删除调整图层
adj_layer.remove();
alert("处理完成!")
}
// 将新调整图层与当前图层合并
function mergeLayerNew(layer, adj_layer) {
// 复制新图层
var newLayer = adj_layer.duplicate(layer, ElementPlacement.PLACEBEFORE)
// 设置复制的为当前图层
app.activeDocument.activeLayer = newLayer;
// 处理
executeAction(stringIDToTypeID("mergeLayersNew"), undefined, DialogModes.NO);
}
//代码结束
保存文件到PS安装目录里的脚本目录里面, 路径如下
../Adobe Photoshop CC 2018/Presets/Scripts
文件名称随意, 但是后缀名必须是.jsx
打开/重新打开PS, 打开要处理的文件,如图
1.加一个调整图层, 设置好要调整的效果
2.只有放到图层组里的图层会被处理
3.选中调整图层, 点击菜单-文件-脚本-合并调整图层
注意:顶级的图层不会被处理, 隐藏的图层/图层组不会被处理, 运行脚本前必须先选中调整图层
如果没有达到效果, 可以按撤销一次, 即可还原. 多试几次, 让我们一起偷懒吧…^ ^



