Можно ли создать несколько изображений в Photoshop, используя значения HEX из файла CSV
Мне нужно создать сотню одноцветных.png файлов в фотошопе, где я могу вызвать шестнадцатеричные значения из CSV-файла, чтобы изменить цвет изображения и сохранить его как соответствующее имя в CSV-файле.
Каков наилучший способ сделать это?
1 ответ
Ниже моя функция для чтения файла CSV. Если у вас есть цвета, вы можете использовать app.documents.add() для создания нового документа с начальным цветом заливки, сохранения и т. Д. Для получения дополнительной информации ознакомьтесь с PDF-справочником по Photoshop JavaScript в каталоге установки Photoshop.
Misc.ReadCsvData = function (csvFile, bHeaderOnly) {
if (bHeaderOnly == undefined)
bHeaderOnly = false;
var line, temp, csvRecord, tempArr;
var csvData = new Array();
var tempArr2 = new Array();
csvFile.open("r");
var startsWithQuote = new RegExp('^\s*"');
var endsWithQuote = new RegExp('"\s*$');
var doubleQuotes = new RegExp('""', "g");
var hasData = new RegExp('[a-zA-Z0-9]');
var bInsideQuote = false;
var iFieldCount = -1;
var sTemp;
while (!csvFile.eof) {
line = csvFile.readln();
if (line.match(hasData)) {
tempArr = line.split(",");
tempArr2 = new Array();
for (var i = 0; i < tempArr.length; i++) {
if (!bInsideQuote && !tempArr[i].match(startsWithQuote)) {
tempArr2.push(tempArr[i].replace(doubleQuotes, '"'));
} else if (!bInsideQuote && tempArr[i].match(startsWithQuote) && tempArr[i].match(endsWithQuote)) {
tempArr2.push(tempArr[i].replace(startsWithQuote, "").replace(endsWithQuote, "").replace(doubleQuotes, '"'));
} else if (!bInsideQuote && tempArr[i].match(startsWithQuote)) {
bInsideQuote = true;
sTemp = tempArr[i];
} else if (bInsideQuote) {
sTemp = sTemp + ", " + tempArr[i];
if (tempArr[i].match(endsWithQuote)) {
tempArr2.push(sTemp.replace(startsWithQuote, "").replace(endsWithQuote, "").replace(doubleQuotes, '"'));
bInsideQuote = false;
}
}
}
if (iFieldCount < 0)
iFieldCount = tempArr2.length;
if (iFieldCount != tempArr2.length) {
throw "Cannot parse csv format.";
}
csvData.push(tempArr2);
if (bHeaderOnly)
break;
}
}
csvFile.close();
return csvData;
}