自动化 Photoshop 编辑并使用文件夹名称重命名 +600 个文件

Automating Photoshop to edit en rename +600 files with the name of the folder

我的 mac 上有超过 600 张产品图片已经剪下并编目在它们自己的文件夹中。它们都是 PSD,我需要一个脚本来执行以下操作。

我之前有过 Bash(前 Linux 用户)的经验,并在 Automator 中尝试了几个小时但没有成功。

欢迎来到 Stack Overflow。快速回答是肯定的,这可以通过脚本来完成。我什至建议分解成两个脚本,一个用于抓取并保存 PSD,第二个用于保存图层。

关于“组合”PSD 或“分离层”不是很清楚,只是我不知道它们是否不同 canvas 大小,您希望每个 PSD 的位置(x,y偏移和分层)请记住 none 使用时将您的文件放在我们面前以供参考。 简而言之,如果您写出您希望代码执行的伪代码,那么回答您的问题会更容易。

这里有一些代码片段可以帮助您入门: 这将打开一个文件夹并将所有 PSD 作为数组检索:

// get all the files to process
var folderIn = Folder.selectDialog("Please select folder to process");
if (folderIn != null)
{
  var tempFileList = folderIn.getFiles();
}


var fileList = new Array(); // real list to hold images, not folders

for (var i = 0; i < tempFileList.length; i++)
{
  // get the psd extension
  var ext = tempFileList[i].toString();
  ext = ext.substring(ext.lastIndexOf("."), ext.length);

  if (tempFileList[i] instanceof File) 
    {
      if (ext == ".psd") fileList.push (tempFileList[i]);
      // else (alert("Ignoring " + tempFileList[i]))
    }
}

alert("Files:\n" + fileList.length);

你可以用这个保存 png

function save_png(afilePath)
{
  // Save as a png
  var pngFile = new File(afilePath);
  pngSaveOptions = new PNGSaveOptions();
  pngSaveOptions.embedColorProfile = true;
  pngSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE;
  pngSaveOptions.matte = MatteType.NONE; pngSaveOptions.quality = 1;
  activeDocument.saveAs(pngFile, pngSaveOptions, false, Extension.LOWERCASE);
}

要打开 psd 只需使用

app.open(fileRef);   

保存起来

function savePSD(afilePath)
{
  // save out psd
  var psdFile = new File(afilePath);
  psdSaveOptions = new PhotoshopSaveOptions();
  psdSaveOptions.embedColorProfile = true;
  psdSaveOptions.alphaChannels = true;  
  activeDocument.saveAs(psdFile, psdSaveOptions, false, Extension.LOWERCASE);
}