Можно ли создать несколько изображений в 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;
}
Другие вопросы по тегам