[AI CC-CC2022] Скрипт красит заливки в цвет обводок, а толщину обводок обнуляет

  • Автор темы Автор темы Flegma
  • Дата начала Дата начала
Откройте скрипт в ESTK и сохраните как бинарник в jsxbin
Вполне возможно, что бинарник будет работать еще быстрее

это с чего вдруг?

вопрос практически по теме - как максимально быстро и эффективно получить список всех используемых цветов в документе? не свотчей, разумеется
 
это с чего вдруг?

вопрос практически по теме - как максимально быстро и эффективно получить список всех используемых цветов в документе? не свотчей, разумеется
а чем свотчи не подходят? по сути это и есть набор доступных/используемых цветов в документе...
очистите список и ... add used color
 
это с чего вдруг?
Ну (искать лениво), но вроде, во всех факах по оптимизации адобовских скриптов советуют згнать код в бинарник и вызывать его. Кэп тоже робко предполагает, что бинарный код разбирать на синтаксические конструкции не надо, что, впрочем, делается один раз в начале. 'hmmm'
 
Ну (искать лениво), но вроде, во всех факах по оптимизации адобовских скриптов советуют згнать код в бинарник и вызывать его. Кэп тоже робко предполагает, что бинарный код разбирать на синтаксические конструкции не надо, что, впрочем, делается один раз в начале. 'hmmm'

так это же не бинарник никакой, а просто текст закодированный типа в base64, нет?
 
так это же не бинарник никакой, а просто текст закодированный типа в base64, нет?
Вот еще один орден розового зверька ожидает своего вручения '))'
Я помнится лично тебе когда то читал подробкую лекцию как устроен JSXBIN '))'
 
по сути это и есть набор доступных/используемых цветов в документе...
Нет
Дофига разных незаметных цветов используется (маски, кисти, встроенная графика и т.д) которые при Add used не переходят в свотчи
А так бы проблема имела элементарное решение
 
Нет
Дофига разных незаметных цветов используется (маски, кисти, встроенная графика и т.д) которые при Add used не переходят в свотчи
А так бы проблема имела элементарное решение
вот на счет встроенной графики я сомневаюсь... попиксельно что ли цвета мониторить? :)
 
сохраните как svg - в нем ищем fill и stroke
Тогда правильнее EPS
Но все равно не то - при экспорте в любой ненативный формат графика упрощается
Самый идеальный случай - только парсить Private Data распакованного AI
 
вот на счет встроенной графики я сомневаюсь... попиксельно что ли цвета мониторить?
В смысле векторной
Там помимо встроенной полно всякоразных PluginObject в которых свои цвета
 
встроенную графику и pluginObject и скриптом не посмотреть все равно, это-то пофиг. сохранять как-то не очень тоже вариант.
 
Вот еще один орден розового зверька ожидает своего вручения '))'
Я помнится лично тебе когда то читал подробкую лекцию как устроен JSXBIN '))'

не помню что-то, где? напомни вкратце, что там. мне казалось что это просто зашифрованный текст JSX

какой-то их собственный компилированный P-code, завернутый, опять же, в некое подобие Base64

а, ну если так. все равно впрочем не думаю что это дает серьезный прирост производительности.
 
Последнее редактирование:
мне казалось что это просто зашифрованный текст JSX
Нет, это утку пустили ламеры когда то очень давно.
Вот же тема была здесь.
Реально же бинарник ассемблируется примерно так
Код:
00000010:  Function{ -1
00000013:    Statements{ -1  {}  0  {  }  0  {  }  3  {
0000001A:      ExprStatement{ 0  {}  0  {  }
0000001E:        LocalAssign{"str1" -1  {} "Hello, World!" false  true
0000004A:        }
0000004A:      }
0000004B:      ExprStatement{ 1  {}  0  {  }
0000004F:        LocalAssign{"str2" -1  {} "Goodbye, World!" false  true
00000081:        }
00000081:      }
00000082:      ExprStatement{ 2  {}  0  {  }
00000086:        Call{
00000087:          Variable{"alert" false
00000095:          }
00000096:          List{ 1  {
00000098:            LocalVariable{"str1" false  -1
0000009C:            } }  false
0000009D:          } false
0000009E:        }
0000009E:      } }
0000009E:    } 0  {  }  2  { "str1" 0x40000000 "str2" 0x40000001  }  0  2  0 "" 1  -1
000000B8:  }
 
  • Спасибо
Реакции: Skvoznyak
не думаю что это дает серьезный прирост производительности.
Это давало б прирост производительности, если б скрипт непрерывно каждую строку парсил и интерпретировал. На самом же деле это один единственный раз происходит при загрузке скрипта. Собственно, это подтверждает тот факт, что синтаксические ошибки при этом сразу выскакивают. Т.е. для несколькистрочных скриптов ускорение в миллисекунды будет, конечно же.
 
В AI скриптинге не разбираюсь.
Что если вынести из цикла:
все_выделенные_объекты.filled = true; (до цикла)
все_выделенные_объекты.strokeWidth = 0; (после цикла)
 
а чем свотчи не подходят? по сути это и есть набор доступных/используемых цветов в документе...
очистите список и ... add used color

в общем спасибо за идею, так и сделал в итоге
запускаю в скрипте app.redraw(), потом экшн из трех команд - add used, select unused, delete, получаю список цветов из doc.swatches, а потом просто делаю app.undo(), что возвращает документ в первозданное состояние

торчат, правда, несколько свотчей, которыми ничего не покрашено. как бы их быстро опознать, чтоб выкинуть из списка?..
 
в общем спасибо за идею, так и сделал в итоге
запускаю в скрипте app.redraw(), потом экшн из трех команд - add used, select unused, delete, получаю список цветов из doc.swatches, а потом просто делаю app.undo(), что возвращает документ в первозданное состояние

торчат, правда, несколько свотчей, которыми ничего не покрашено. как бы их быстро опознать, чтоб выкинуть из списка?..
я думаю, что "add used, select unused, delete" можно тоже скриптом сделать.. как и экспорт списка в какой-то txt файл. Не юзанные свочи по дефолту по моему Ч/Б и регистрейшн (4х100%) остальные нужно смотреть.