PS中导出图层,可以组合导出吗? 比如三个组A,B,C,每个组里各有3个图层1,2,3,导出时排列组合导出 如A1+B1+C1合一张,A2+B1+C1合一张,A3+B1+C1合一张,A1+B2+C1合一张,A1+B3+C1合一张... 以此类推 求这种ps脚本 图层, 脚本
可以!你在ps中要先录制好动作,然后在运行! 如:你新建文件叫ps-001, 在这里把每个动作(操作)录制一边, 再新建文件ps-002中运行此动作! 这个能是笨方法,不知道其他大佬有没有更简单快捷的方法! 动作快捷方式是:Alt+F9
打开豆包.com 豆包帮我写一个ps插件,让他合并每一个组里显示的图层,然后导出为图片。具体来说:比如三个组A,B,C,每个组里各有3个图层1,2,3,导出时排列组合导出 如A1+B1+C1合一张,A2+B1+C1合一张,A3+B1+C1合一张,A1+B2+C1合一张,A1+B3+C1合一张... 改十几次就会成功的
zbwkl 发表于 2025-8-29 21:23 https://github.com/antipalindrome/Photoshop-Export-Layers-to-Files-Fast 这个只能单独出图层,没法组合
wuaiwxh 发表于 2025-8-29 21:30 就是改半天都没改出来 那你就用ps变量呗,你一共9张原始图,每次只使用三张,就是三个变量,在excel构成27组数组保存为csv,导入ps变量,应用之后会生成27ps文件,再用fast stone view批量转一下。具体过程你自己去搜索学习,变量一开始用的的时候,肯定有会想不到问题,习惯就好。用熟了的话10分钟搞定
#为我编写一个Photoshop脚本程序, ##主要功能 - 将当前已打开的Photoshop图片文件,按各图层组里的各个图层排列组合,组合后拼合为一个图层,并将图层名称按规则重命名; - 命名规则为组名加图层名。 - 比如:已打开Photoshop文里面有3个图层组,图层组名分别为A,B,C,每个组里各有3个图层,图层名称分别为1,2,3; - 排列组合后,新的图片文件当有27个图层(以有3个图层组,各组有3个图层为例); - 以下为这个图片文件(以有3个图层组,各组有3个图层为例)具体拼合图层排列组合的流程和图层命名方法: A组里的第一个图层和B组里的第一个图层加C组里的第一个图层拼合为一个图层,并将图层命名为A1B1C1图层; A组里的第二个图层和B组里的第一个图层加C组里的第一个图层拼合为一个图层;并将图层命名为A2B1C1图层; A组里的第三个图层和B组里的第一个图层加C组里的第一个图层拼合为一个图层;并将图层命名为A3B1C1图层; A组里的第一个图层和B组里的第二个图层加C组里的第一个图层拼合为一个图层;并将图层命名为A1B2C1图层; A组里的第二个图层和B组里的第二个图层加C组里的第一个图层拼合为一个图层;并将图层命名为A2B2C1图层; A组里的第三个图层和B组里的第二个图层加C组里的第一个图层拼合为一个图层;并将图层命名为A3B2C1图层; A组里的第一个图层和B组里的第三个图层加C组里的第一个图层拼合为一个图层;并将图层命名为A1B3C1图层; A组里的第二个图层和B组里的第三个图层加C组里的第一个图层拼合为一个图层;并将图层命名为A2B3C1图层; A组里的第三个图层和B组里的第三个图层加C组里的第一个图层拼合为一个图层;并将图层命名为A3B3C1图层; A组里的第一个图层和B组里的第一个图层加C组里的第二个图层拼合为一个图层;并将图层命名为A1B1C2图层; A组里的第二个图层和B组里的第一个图层加C组里的第二个图层拼合为一个图层;并将图层命名为A2B1C2图层; A组里的第三个图层和B组里的第一个图层加C组里的第二个图层拼合为一个图层;并将图层命名为A3B1C2图层; A组里的第一个图层和B组里的第二个图层加C组里的第二个图层拼合为一个图层;并将图层命名为A1B2C2图层; A组里的第二个图层和B组里的第二个图层加C组里的第二个图层拼合为一个图层;并将图层命名为A2B2C2图层; A组里的第三个图层和B组里的第二个图层加C组里的第二个图层拼合为一个图层;并将图层命名为A3B2C2图层; A组里的第一个图层和B组里的第三个图层加C组里的第二个图层拼合为一个图层;并将图层命名为A1B3C2图层; A组里的第二个图层和B组里的第三个图层加C组里的第二个图层拼合为一个图层;并将图层命名为A2B3C2图层; A组里的第三个图层和B组里的第三个图层加C组里的第二个图层拼合为一个图层;并将图层命名为A3B3C2图层; A组里的第一个图层和B组里的第一个图层加C组里的第三个图层拼合为一个图层;并将图层命名为A1B1C3图层; A组里的第二个图层和B组里的第一个图层加C组里的第三个图层拼合为一个图层;并将图层命名为A2B1C3图层; A组里的第三个图层和B组里的第一个图层加C组里的第三个图层拼合为一个图层;并将图层命名为A3B1C3图层; A组里的第一个图层和B组里的第二个图层加C组里的第三个图层拼合为一个图层;并将图层命名为A1B2C3图层; A组里的第二个图层和B组里的第二个图层加C组里的第三个图层拼合为一个图层;并将图层命名为A2B2C3图层; A组里的第三个图层和B组里的第二个图层加C组里的第三个图层拼合为一个图层;并将图层命名为A3B2C3图层; A组里的第一个图层和B组里的第三个图层加C组里的第三个图层拼合为一个图层;并将图层命名为A1B3C3图层; A组里的第二个图层和B组里的第三个图层加C组里的第三个图层拼合为一个图层;并将图层命名为A2B3C3图层; A组里的第三个图层和B组里的第三个图层加C组里的第三个图层拼合为一个图层;并将图层命名为A3B3C3图层; - 生成的代码要能适应Photoshop图片文件有不同的图层组数量,图层组里有不同数量的图层; ##注意事项: - 生成的代码全部使用中文注释 --------------------------------------------------------------------------------- [JavaScript] 纯文本查看 复制代码/** * Photoshop 脚本:按图层组的所有组合方式将图层拼合为新的单层 * * 主要功能: * 1. 读取当前打开文档中的所有顶层图层组(LayerSet)。 * 2. 对每个图层组取其中的所有普通图层(不包含子图层组)。 * 3. 计算所有图层组之间的笛卡尔积(即所有可能的组合)。 * 4. 对于每一种组合: * - 把对应的图层复制到一个临时图层组中; * - 合并该临时组得到一张新图层; * - 以 “组名+图层名” 的形式为新图层命名。 * 5. 脚本可适配任意数量的图层组以及每组任意数量的图层。 * * 使用方法: * 1. 打开 Photoshop 并加载你想处理的 PSD 文件。 * 2. 通过 “文件 > 脚本 > 浏览...” 选择此脚本文件运行。 * * 注意事项: * - 该脚本仅处理顶层图层组(不递归子图层组)。如果你想递归子组,请自行扩展。 * - 若某个图层组为空,脚本会自动跳过该组。 * - 生成的所有新图层都位于文档顶部,原始图层保持不变。 * * @AuThor AI 助手 * @date 2025-08-31 */ // --------------------------------------------- // 主程序入口 // --------------------------------------------- (function main() { // 确保有文档打开 if (app.documents.length === 0) { alert("请先打开一个 Photoshop 文档。"); return; } var doc = app.activeDocument; // 1. 读取所有顶层图层组 var topLayerSets = doc.layerSets; // 直接返回一个集合 var groupsInfo = []; // 用来存储每个组的名字与其普通图层 // 2. 逐组提取普通图层 for (var i = 0; i 0) { groupsInfo.push({ name: group.name, layers: normalLayers }); } else { // 若组为空,提醒并跳过 alert("图层组 '" + group.name + "' 为空,已自动跳过。"); } } // 若没有可处理的图层组 if (groupsInfo.length === 0) { alert("文档中没有可用的图层组,脚本结束。"); return; } // 3. 生成所有组合并合并图层 try { buildCombinations(doc, groupsInfo, 0, [], []); alert("完成!共生成 " + combinationCount + " 个组合图层。"); } catch (e) { alert("脚本运行出错:\n" + e); } // --------------------------------------------- // 计数器,用来显示生成的图层数量 // --------------------------------------------- var combinationCount = 0; // --------------------------------------------- // 递归函数:构建所有组合 // --------------------------------------------- function buildCombinations(doc, groupsInfo, depth, nameParts, layerParts) { // 当深度等于组数,说明已选定一个完整组合 if (depth === groupsInfo.length) { // 组合已完成,执行合并 combineLayers(doc, layerParts, nameParts); combinationCount++; return; } // 当前处理第 depth 个图层组 var currentGroup = groupsInfo[depth]; var groupName = currentGroup.name; var groupLayers = currentGroup.layers; // 对该组中的每一个图层进行遍历 for (var i = 0; i -------------------------------------------------------------- 以上刚刚试过执行成功。