PS将[调整图层]合并到每个单独图层
1、打开文本编辑器、写入以下代码:
// 代码开始
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将[调整图层]合并到每个单独图层](https://exp-picture.cdn.bcebos.com/4a6d48ee7b7f860eb0abef4277f5ee0d3bcebe74.jpg)
2、保存文件到PS安装目录里的脚本目录里面, 路径如下
../Adobe Photoshop CC 2018/Presets/Scripts
文件名称随意, 但是后缀名必须是.jsx
![PS将[调整图层]合并到每个单独图层](https://exp-picture.cdn.bcebos.com/444696013870d5413053acbe2e0f94fc518c8074.jpg)
3、打开/重新打开PS, 打开要处理的文件,如图
1.加一个调整图层, 设置好要调整的效果
2.只有放到图层组里的图层会被处理
3.选中调整图层, 点击菜单-文件-脚本-合并调整图层
注意: 顶级的图层不会被处理, 隐藏的图层/图层组不会被处理, 运行脚本前必须先选中调整图层
![PS将[调整图层]合并到每个单独图层](https://exp-picture.cdn.bcebos.com/dda98e4800fc77f762ec5596c8715fdb37209078.jpg)
4、如果没有达到效果, 可以按撤销一次, 即可还原. 多试几次, 让我们一起偷懒吧…
^ ^