[AI CC2024] Скрипт Перевод Global цветов в триадные в панели Swatches.

ITIT

Топикстартер
15 лет на форуме
Сообщения
517
Реакции
196
Уважаемые господа,нужна ваша помощь.
Для много ходовой Action нужен скрипт ,,
 
Я только не понял... Чем Global помешали? Они же тоже триадные :))
 
  • Спасибо
Реакции: Любимцев
Последнее редактирование:
Может речь о Spot Color? При чем тут новый документ?
 
 
  • Спасибо
Реакции: ITIT
Может речь о Spot Color? При чем тут новый документ?
Нет не Spot Color,оказывается эти цвета ,,обзывают,, обычные.
,,В Adobe Illustrator Spot цвета (плашечные цвета) отображаются в панели Swatches (Образцы) с небольшим значком в виде белого треугольника в нижнем правом углу образца. Это помогает отличить их от обычных цветов, которые не имеют этого значка.,,
 
небольшим значком в виде белого треугольника
с точкой.
Просто белого треугольника, да — просто Global независимо от их красочного состава.
А у плашечных, птица Global станет недоступна (они по-умолчанию глобальные, видимо)
 
  • Спасибо
Реакции: Drawer
оказывается эти цвета ,,обзывают,, обычные.
Ок, и чем они Вам помешали?:)
В Adobe Illustrator Spot цвета (плашечные цвета) отображаются в панели Swatches (Образцы) с небольшим значком в виде белого треугольника в нижнем правом углу образца
Нет :) Как видите ниже обычный триадный... с треугольничком...

1727453001660.png
 
Последнее редактирование:
  • Спасибо
Реакции: ITIT
Спасибо,разобрался.

Теперь зачем мне нужен был скрипт:
После трассировки цветного изображения в панель Swatches переводятся цвета,те что
с галочкой Global (у Вас отмечено красным прямоугольником),а мне нужен цвет,как (чёрный),наверное Regular.
ИИ написал мне скрипт,который конечно не работает:
Код:
#target illustrator

// Функция для замены цвета в палитре
function replaceGlobalColors() {
  if(app.documents.length == 0){
    alert("Откройте документ для замены цветов");
    return;
  }
  
  var doc = app.activeDocument;
  var colorCount = doc.swatches.length;
  
  for (var i = 0; i < colorCount; i++) {
    var swatch = doc.swatches[i];
    
    if (swatch.color.typename === 'SpotColor' && swatch.color.space === ColorSpace.RGB && swatch.color.colorType === ColorModel.PROCESS && swatch.color.spot.name === '[Registration]') {
      swatch.color.spot = doc.spots.add();
      swatch.color.spot.color = swatch.color.tint;
      swatch.color.spot.name = (swatch.color.red + 128)%255;
    }
  }
  
  alert("Global цвета в панели образцов были заменены .");
}

replaceGlobalColors();
 
Т.е. Вам нужно, чтобы цвета после трассировки не попадали в в панель Swatches ?
Вы бы приложили уже 2 файла, после трассировки, как вам не нравится и исправленный как вам надо ручками, а то мы толчем тут воду в ступе, непонятно зачем...
Еще раз... С галочкой Global цвет такойже триадный как и без нее, но сохраняется привязка к окрашенным объектам, что удобно, можно изменив цвет свотча перекрасить все окрашенные им объекты, в остальном это обычный триадный цвет, никому жить это кроме Вас не мешает...
 
Последнее редактирование:
  • Спасибо
Реакции: ITIT
Насчёт того,что Global цвета они триадные я понял.
Попробую обьяснить,что мне нужно ещё раз:
Скриптом изменить Global цвета (красный цвет с белым триугольником ),которые уже есть в панели Swatches, на Regular цвета (чёрный квадрат).
 
После трассировки.

Color-1.jpg


Как нужно после применения скрипта.

Color-2.jpg
 
Проблема решена скриптом Сергея Осокина.
Код:
function main() {
  var suffix = '_CMYK';
  var isRmvSpot = true; // true of false

  var doc = app.activeDocument;
  var len = doc.spots.length;
  var isRgb = /rgb/i.test(doc.documentColorSpace);

  for (var i = 0; i <= len - 1; i++) {
    if (doc.spots[i].colorType === ColorModel.REGISTRATION) continue;
    var spotName = doc.spots[i].name;
    var spotValue = doc.spots[i].getInternalColor();
    var sw = doc.swatches.add();
    sw.name = spotName + suffix;
    var newColor = setColor(spotValue, isRgb);
    sw.color = newColor;
  }

  if (isRmvSpot && len > 0) doc.spots.removeAll();
}

function setColor(arr, isRgb) {
  var color = isRgb ? new RGBColor() : new CMYKColor();
  if (isRgb) {
    color.red = arr[0];
    color.green = arr[1];
    color.blue = arr[2];
  } else {
    color.cyan = arr[0];
    color.magenta = arr[1];
    color.yellow = arr[2];
    color.black = arr[3];
  }
  return color;
}

Drawer Особое СПАСИБО.