javascript - 将仅具有特定文件扩展名的图像导入 Photoshop

标签 javascript import photoshop

我是 JavaScript 新手(已经从这个网站学到了很多!)。我有现有的代码(来自其他人),可以成功地将所有图像从用户选择的文件夹导入到 Photoshop 中。我想修改代码以仅引入特定的文件扩展名(Jpg、png、tiff...等)。我在下面的网站上找到了一个很好的代码示例,说明了我想要做的事情。

var distilledFileList = [];
for (var i = 0; i < fileList.length; i++){
  if (/\.(?:jpe?g|png|gif|psd)$/i.test(fileList[i].name)){
    distilledFileList.push(fileList[i]);
  }
}

Original code found here

我还没有弄清楚如何将这个版本成功地实现到我已有的版本中。这是我的代码的主要部分,我认为需要添加修改。

    #target photoshop
    app.bringToFront();

    // Dialog for user to choose folder of documents to process
    var inputFolderArray = [];
    do {
    var inputFolder = Folder.selectDialog("Select a folder of documents to process");
    if(inputFolder != null) {
          inputFolderArray.push(inputFolder);
        }
    }

    while(inputFolder != null 
    || inputFolder != undefined)

    // Pulls images from inputFolder
    for (var j = 0; j < inputFolderArray.length; j++) { 
    var filesList = inputFolderArray[j].getFiles();
    var outputDirectory = inputFolderArray[j] + '/';
    }

function PSDCreate(frameArrays, outputDirectory) {
  directory = outputDirectory + '/';

//var outputLocation = inputFolder + "/" + directory;
  var outputFileName = '';

  if (frameArrays != null) {


// Get all the files in the folder
    var fileList = frameArrays;
    var k = 0;

    for (var i = 0; i < fileList.length; i++) {
      if (fileList[i] instanceof File && fileList[i].hidden == false) {

var fileName = fileList[i].name;
        var docRef = open(fileList[i]);

        if(k == 0) {
          k++;
          outputFileName = RemoveExtension(docRef.name);
app.displayDialogs = DialogModes.NO;
        }
      }
    }


    // Execute changes to images in photoshop here..

有人知道如何将示例代码的版本实现到我已经偶然拥有的版本吗?非常感谢任何帮助!

最佳答案

如果我理解正确,您希望用户选择多个文件夹,然后处理所有这些文件夹的文件。首先,这里

// Pulls images from inputFolder
for (var j = 0; j < inputFolderArray.length; j++) { 
    var filesList = inputFolderArray[j].getFiles();
    var outputDirectory = inputFolderArray[j] + '/';
}

filesList 将被每个新文件夹覆盖,您将仅从最后选择的文件夹中获得文件列表。我会将其更改为

// Pulls images from inputFolder
var files = []
for (var j = 0; j < inputFolderArray.length; j++)
{
    var filesList = inputFolderArray[j].getFiles();

    for (var i = 0; i < filesList.length; i++)
    {
        if (/\.(?:jpe?g|png|gif|psd)$/i.test(filesList[i].name)) files.push(filesList[i]); //get needed files from folders
    }
}
alert(files); // < array of files

如果您只需要打开这些文件,可以将 files.push(filesList[i]); 替换为 app.open(fileList[i]);

关于javascript - 将仅具有特定文件扩展名的图像导入 Photoshop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53890455/

相关文章:

javascript - 使用 Javascript/jQuery 计算字符数

javascript - append() 仅第一次工作..当在同一个 div 上附加相同的代码时

JavaScript window.open 函数在 IE7 中指示不要显示工具栏和菜单栏时显示工具栏和菜单栏

python - 导入在 __init__.py 中指定的变量

javascript - 从 Javascript 脚本运行 Photoshop "Action"

javascript - 设计师使用 JavaScript 框架的工作流程

mysql - 如果不存在则创建表返回 "the table doesn´t exist"

import - 如何合并我的 Tumblr 博客?

css - 无法将 Photoshop 不透明度转换为 CSS3

iphone - iPhone 应用程序的界面 Photoshop 尺寸