Почему мой сценарий .JSX не распознает каждое изображение в папке, которое я хочу изменить в размере? - PullRequest
0 голосов
/ 16 октября 2019

У меня есть этот JSX-скрипт, который я создал, но я чувствую, что он не проверяет каждый тип файла в переменной filelist. Может кто-нибудь взглянуть? Это очень расстраивает, когда я запускаю его, а затем по какой-то причине выскакивает неописанное сообщение об ошибке, а затем останавливается

Вот скрипт:

var inputFolder = Folder.selectDialog("Select a folder to process"),
    fileList = inputFolder.getFiles(/\.(jpg|tif|psd|crw|cr2|nef|dcr|dc2|raw)$/i);

for(var i=0; i < fileList.length; i++) {
        var doc = open(fileList[i]);
        if(doc.width !== doc.height) {
            if(doc.width > doc.height) {
                doc.resizeCanvas(doc.width, doc.width)
            } else {
                doc.resizeCanvas(doc.height, doc.height)
            }
        }
        if((doc.width && doc.height) > 1000) {
            doc.resizeImage(1000, 1000);
        } else {
            doc.resizeImage(doc.width, doc.height);
        }

    doc.save();
    doc.close();
}

Это сообщение об ошибке: enter image description here

1 Ответ

0 голосов
/ 16 октября 2019

Кажется, что Folder.getFiles() не принимает RegExp объектов, он принимает только string или function, кроме того, он также включает Folder объектов, вы можете изменить его на что-то вродеэто позволяет фильтровать только файлы и только те типы файлов, которые вас интересуют:

function filter(file) {
  return (file instanceof File && /\.(jpg|tif|psd|crw|cr2|nef|dcr|dc2|raw)$/i.test(file.name))
}
fileList = inputFolder.getFiles(filter);
...