CS5将图层导出为无编号序列的文件


9

我正在使用CS5图层进行修改,然后将图层导出为文件。保存CS5时会自动在末尾添加一些数字序列,从而修改我的原始文件名。

它自动将数字序列前缀嵌入到导出的图层中,从而使我自己的文件命名约定无效。有解决办法吗?在某处是否有一个选项“不要自动重命名我的文件”或“将图层名称用作文件名”?

我不要这个编号。如何预防呢?


不,没有错位。我已经完成了文件>脚本>将文件加载到堆栈中。完成更改后,现在我必须将所有图层导出到单独的文件中(“文件”>“脚本”>“将图层导出到文件”)。这是CS5执行此自动编号的时间。希望你现在明白了。
Srikar Appalaraju 2012年

尽管我和您一样不喜欢该编号,但在使用相同名称寻址图层时,它们确实有意义。因此,对我来说,事后用一个小应用程序对其重命名是现在工作流程的一部分。
KMSTR 2012年

有一种更优雅的方式来处理重复的图层名称。除了使用shot弹枪方法外,他们还可以检测图层何时与另一图层具有相同的名称,并附加一个数字。因此结果将是filename.jpgfilename1.jpg
posit Labs 2014年

Answers:


11

换句话来说,由于Export Layers to Files是由某个脚本运行的,所以我要做的就是找到该脚本,然后找到将图层保存到文件的函数,找到该函数的哪一部分进行编号前缀并将其注释掉。

所以这是步骤-

  1. 在运行Lion的Mac上,转到Applications > Adobe Photoshop CS5 > Presets > Scripts > Export Layers To Files.jsx(在Windows中,该目录与“程序文件/ Adob​​e”中的目录几乎相同
  2. 现在,在此文件中转到第1030行并将其注释掉。
  3. 同样在第1031行中,更改fileNameBody += "_" + layerName;fileNameBody += layerName;删除下划线和括号。
  4. 注释掉第1049行(fileNameBody + =“ _” + zeroSuppress(i,4)+“ s”;)

保存并关闭文件。这应该完成工作。以下是论坛源链接。

http://forums.adobe.com/message/3006825

http://forums.devshed.com/photoshop-help-88/removing-number-sequence-in-export-layers-to-files-in-cs5t-730612.html


听起来更优雅。尽管很明显,但我想提一提,这实际上是在更改内置脚本,您应该保留旧代码(两行都不变,只需复制并粘贴需要更改的代码) 。这样,如果您需要原始功能,只需换掉注释掉的两行即可。
汉娜2012年

是的,很酷。我总是将其作为默认步骤。这是一个基本步骤,我什至没有提及。无论如何,感谢您出于完整性的考虑而提出...
Srikar Appalaraju 2012年

1

我明白你的问题。我不知道有什么方法可以在Photoshop中进行调整,但是您有两种选择。

首先,您可以使用Adobe Bridge批量重命名所有文件。(工具>>批量重命名) 在此处输入图片说明

如您所见,此窗口提供了更多选项来重命名文件以及控制前缀和后缀。缺点是,如果在保存时需要按特定顺序排列图层,则bridge不会捕获到该图层,因为它只是重命名已保存的文件。

其次,我写了一个脚本,作为一个答案一个问题。(我刚刚进行了更新,以满足您使用图层名称保存图层的需求)。该脚本虽然不能进行超级自定义,但会使用图层名称将所有图层另存为JPEG(具有质量控制)或PNG并将所有图层另存为文件。如果您遇到任何问题,请让我知道,我只能在自己的计算机上测试脚本,并且可以正常运行。


Johannes,您的脚本很好,但是在我的计算机上运行该脚本时,显示过程已完成,但未提供任何输出。

1

对于Photoshop CC,它是1020行。此外,您可以复制,注释掉并编辑它下面的行,以删除下划线。

    // fileNameBody += "_" + zeroSuppress(i, 4);
    // fileNameBody += "_" + layerName;
    fileNameBody += "" + layerName;

0

对于CC 2015.5,您需要注释掉第1083和1084行

    // fileNameBody += "_" + zeroSuppress(i, 4);
    // fileNameBody += "_" + layerName;

并更换线1085-1088

  fileNameBody = fileNameBody.replace(/[:\/\\*\?\"\<\>\|]/g, "_");  // '/\:*?"<>|' -> '_'
    if (fileNameBody.length > 120) {
        fileNameBody = fileNameBody.substring(0,120);
    }

与以下

fileNameBody += "" + layerName;

0

在“ 将文件替换为图层”对话框中,在“ 文件名前缀”旁边,取消选中“ 索引”。这样可以防止添加索引号。


0

我很确定我已经弄清楚了。感谢在此论坛上发布的每个人都为我提供了解决该问题所需的线索。所以代码如下:

行:2179 var fileNameBody = fileNamePrefix; // fileNameBody + =“ ” + zeroSuppress(i,4); // fileNameBody + =“ ” + layerName; fileNameBody + = layerName;

这样做是摆脱大多数图层名称的前缀。我们许多人所面临的问题是,当图层分组时,保存时它仍带有前缀。要解决此问题,您需要再更改一行代码:

行:2219 // fileNameBody + =“ _” + zeroSuppress(i,4)+“ s”;

本质上,您需要注释掉此代码,该代码应位于“ var fileNameBody = fileNamePrefix;”下。代码行。即使将图层分组,也应删除前缀。

您需要更改的唯一代码是我编码为红色的代码。

免责声明:代码中的行号可能会随您使用的Photoshop版本而异。您只需使用应用程序搜索功能来搜索代码即可解决此问题。确保删除“ //”,否则将无法在代码中找到所需的内容。

我希望我可以帮助某人。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.