Это javascript (не мой), который импортирует изображения в Photoshop в алфавитном и числовом порядке.
При запуске скрипта:
- Пользователь выбирает папку изображений для импорта в Photoshop.
-Изображения затем импортируются в алфавитном и числовом порядке.Пример:
a.01.png, b.01.png, c.01.png, a.02.png, b.02.png, c.02.png, a.03.png, b.03.png, c.03.png .. и т. д.
Скрипт отлично работает до конца.Всегда не удается ввести одно из изображений из последнего числового набора.EX сбоя:
a.01.png, b.01.png, c.01.png, a.02.png, b.02.png, c.02.png,
«Пропускает сюда ввод a.03.png»
b.03.png, c.03.png
Не имеет значения, скольконаборы, самый последний набор всегда не может импортировать одно изображение.Остальные ввозят нормально.Я не смог понять, что вызывает это.Кто-нибудь может найти проблему в этом скрипте ниже?
Обновление
Я не упоминал, что это фрагмент кода из гораздо большего JavaScript, поэтому используется PSDcreate и другие элементы.в другом месте.Я только что обрезал сегмент, который терпел неудачу, так как оригинал слишком велик для публикации.Я запустил сценарий, который вы создали, и он вводит их, но не совсем так, как они делают в коде, который у меня есть.Я полагаю, что ваши изображения приносят
a.00.1png, a.002.png, a.003.png b.001.png, b.002.png, b.003.png,c.001.png, c.002.png, c.003.png ... т. д.
Тот, который я использую, помещает в порядке
a.001.png, b.001.png, c.001.png, a.002.png, b.002.png, c.002png ... и т. Д.
У меня есть a,b, c изображения, заканчивающиеся на .001, импортированные в Photoshop.Затем в этот момент код, который я вынул, затем складывает изображения в порядке (a, b, c) и выполняет различные другие задачи.Когда закончите, сохраните их как PSD-файл "name.001.psd".Затем скрипт вводит следующую группу изображений с 002 и повторяет процесс в цикле.Это часть, которую я удалил, потому что в ней так много кода, и, похоже, проблема не в этом.Можно ли получить изображения, введенные как
a, b, c .001, затем a, b, c .002..etc?
Код:
#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] + '/';
// Sort the order of files corresponding to the number
filesList.sort(function(x,y) {
// the substr gets the numbers (ex: get "01" from image.01.png)
var xp = (x.name).substr(-6, 2);
var yp = (y.name).substr(-6, 2);
return parseInt(xp) - parseInt(yp);
});
var frameArrays = [[]];
var oldFrameNum = (filesList[0].name).substr(-6, 2);
// These are used for array slice
var arrayStartNum = 0;
var arrayEndNum = 1;
// Put each frame into separate array
for (var i = 1; i < filesList.length; i++) {
var currentFrameNum = (filesList[i].name).substr(-6, 2);
if(oldFrameNum !== currentFrameNum) {
oldFrameNum = currentFrameNum;
frameArrays[0].push(filesList.slice(arrayStartNum, i));
arrayStartNum = i;
arrayEndNum = i-1;
}
else if(i === filesList.length-1) {
frameArrays[0].push(filesList.slice(arrayStartNum, i));
}
}
for (var i = 0; i < frameArrays[0].length; i++) {
// Sort the file order alphabetically
sorter = MySort('*!@_.()#^&%-=+01234567989abcdefghijklmnopqrstuvwxyz');
frameArrays[0][i].sort(sorter)
PSDCreate(frameArrays[0][i], outputDirectory);
}
}
// FUNCTIONS BELOW//
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);
}
}
}
}
}
// Removes extension from file name
function RemoveExtension(name) {
var fileNameNoExtension = name;
fileNameNoExtension = fileNameNoExtension.split(".");
if ( fileNameNoExtension.length > 1 ) {
fileNameNoExtension.length--;
}
fileNameNoExtension = fileNameNoExtension.join(".");
return fileNameNoExtension;
}
// Sort the file order alphabetically with special characters
function MySort(alphabet)
{
return function(a, b) {
var index_a = alphabet.indexOf(a[0]),
index_b = alphabet.indexOf(b[0]);
if (index_a === index_b) {
// same first character, sort regular
if (a < b) {
return -1;
} else if (a > b) {
return 1;
}
return 0;
} else {
return index_a - index_b;
}
}
}