[AI CC-CC2021] RECOLOR ENGINE v2 by S.H.

splxgf

12 лет на форуме
Сообщения
7 740
Реакции
3 421
Как экномично для кода создать 16 слайдеров? Была идея
Ну я бы делал 20 слайдеров (еще один на общее ослабление/усиление канала если уж делать аналог фотошопа).
Для всех слайдеров делать один обработчик, он же в принципе не зависит от того что поменялось (либо для экономии делать четыре обработчика разбив поканально).
Не надо привязываться к слайдером, на каждое изменение слайдера повесить обработчик в две строки, поменять нужную переменную и обновить картинку. А основная логика у вас не должна зависеть от количества слайдеров или принципа изменения входящих данных.
 

Станислав Хоффман

Участник
Топикстартер
Сообщения
277
Реакции
23
Ну я бы делал 20 слайдеров (еще один на общее ослабление/усиление канала если уж делать аналог фотошопа).
Для всех слайдеров делать один обработчик, он же в принципе не зависит от того что поменялось (либо для экономии делать четыре обработчика разбив поканально).
Не надо привязываться к слайдером, на каждое изменение слайдера повесить обработчик в две строки, поменять нужную переменную и обновить картинку. А основная логика у вас не должна зависеть от количества слайдеров или принципа изменения входящих данных.
спасибо. Изначально решил не делать слайдер контраста, как в фотошоп. Я им никогда не пользуюсь. Можно будет прикрутить, если кому-то нужен.
 

splxgf

12 лет на форуме
Сообщения
7 740
Реакции
3 421
. Изначально решил не делать слайдер контраста, как в фотошоп. Я им никогда не пользуюсь. Можно будет прикрутить, если кому-то нужен.
С его помощью можно нужный цвет затянуть, так что в общем случае эту бы возможность оставил.
 

Станислав Хоффман

Участник
Топикстартер
Сообщения
277
Реакции
23
С его помощью можно нужный цвет затянуть, так что в общем случае эту бы возможность оставил.
меня уже просили это сделать - будет специальная опция для ввода цифры - минимальный процент точки.
 

splxgf

12 лет на форуме
Сообщения
7 740
Реакции
3 421
меня уже просили это сделать - будет специальная опция для ввода цифры - минимальный процент точки.
Боюсь это будет не совсем эквивалентно, тем более без поканальных возможностей.
А какая логика работы будет у минимального процента точки?
 

Станислав Хоффман

Участник
Топикстартер
Сообщения
277
Реакции
23
Боюсь это будет не совсем эквивалентно, тем более без поканальных возможностей.
А какая логика работы будет у минимального процента точки?
думал об этом, можно оставить как опцию, всё-таки в большинстве случаев минимальная точка одна для всех каналов. Логика простая - if color <3%, color = 3%.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Не понял сути проблемы. Что мешает сделать c1 массивом, который передавать в функцию?
 

splxgf

12 лет на форуме
Сообщения
7 740
Реакции
3 421

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Мда. Мой вам совет - сделайте перерыв, выпейте поллитра хорошего пива - ваш взгляд снова станет свежим! ;)
 

Станислав Хоффман

Участник
Топикстартер
Сообщения
277
Реакции
23
Мда. Мой вам совет - сделайте перерыв, выпейте поллитра хорошего пива - ваш взгляд снова станет свежим! ;)
Пару дней убил на поиск решения как передавать значения из одной функции в другую - не работало.
Всем спасибо, добавил второй массив и всё заработало - циан каждого объекта передаётся в функцию как положено.
Буду собирать дальше. Буду прикручивать кусок кода, который меняет значения слайдера по нажатию курсора вверх/вниз и если нажать shift, то шаг будет +-10%, как это и сделано в фотошопе. Мышкой точные значения дергать нереально - у меня либо 99, либо 102 вместо 100 всегда получаются.
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
Пару дней убил на поиск решения как передавать значения из одной функции в другую - не работало.
ну у функции есть аргументы

function foo(bar)
{

}

вызываете foo с аргументом bar
 

splxgf

12 лет на форуме
Сообщения
7 740
Реакции
3 421
Предварительный вариант скрипта для перекраски готов, работает на последней версии AI. Выложу после проверки на CS5.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
И вправду, занятная штука. 'cooll)'
 

Станислав Хоффман

Участник
Топикстартер
Сообщения
277
Реакции
23
Под CS5 работает, так что будем считать что работает под всеми актуальными и не очень версиями.
Файл из Облака Mail.Ru
AIRe-color UG
Всем привет, провёл тесты всех 4х дельт Е. Получилась странная штука.
Прикрепляю тесты, в архиве их вектор (AI CS5).
Recolor Engine - тесты Май 2018 - v1

сравнил новую dE 76 с ранней версией моего переделанного скрипта тоже под dE 76 - в светах они отличаются.

Отличная работа, видно, что усилий потрачено не мало.
У меня два пожелания - можно ползунок сделать от 0% и с шагом 0,4% ? Мне бывает нужно затягивать под 0,8 и 1,6%.
Второе - можно сделать вариант скрипта без свотчей, с выделенными объектами? (могу предоставить необходимый кусок кода, если нужно).
 

splxgf

12 лет на форуме
Сообщения
7 740
Реакции
3 421
У меня два пожелания - можно ползунок сделать от 0% и с шагом 0,4% ? Мне бывает нужно затягивать под 0,8 и 1,6%.
Код открыт, переделки под это минимальны. Только в скрипте идеология что % делаются целочисленными значениями, хотя можно и 1/256 шаг сделать.
0,8 - это формы кодак?
Второе - можно сделать вариант скрипта без свотчей, с выделенными объектами?
Делать такой вариант не интересно в принципе, он будет сильно компромиссный.
В случае с глобальными цветами можно быстро ручками поправить градиенты где скрипт ошибся.
Для начала скорость будет сильно зависеть от количества объектов.
Во вторых достаточно сложный разбор объектов и видов их заливок.
В третьих для используемого способа перекраски нужно где-то хранить исходный цвет, структура получается достаточно сложной, можно конечно копировать выделенные объекты в новый документ и они будут хранить эталон, но этот вариант еще надо рассмотреть (реализуем ли он в принципе).
Можно конечно сделать вариант с однократным выбором параметров и одним прогоном, но будет ли этого достаточно?
 

Станислав Хоффман

Участник
Топикстартер
Сообщения
277
Реакции
23
Код открыт, переделки под это минимальны. Только в скрипте идеология что % делаются целочисленными значениями, хотя можно и 1/256 шаг сделать.
0,8 - это формы кодак?

Делать такой вариант не интересно в принципе, он будет сильно компромиссный.
В случае с глобальными цветами можно быстро ручками поправить градиенты где скрипт ошибся.
Для начала скорость будет сильно зависеть от количества объектов.
Во вторых достаточно сложный разбор объектов и видов их заливок.
В третьих для используемого способа перекраски нужно где-то хранить исходный цвет, структура получается достаточно сложной, можно конечно копировать выделенные объекты в новый документ и они будут хранить эталон, но этот вариант еще надо рассмотреть (реализуем ли он в принципе).
Можно конечно сделать вариант с однократным выбором параметров и одним прогоном, но будет ли этого достаточно?
1) Да, 0,8 для Kodak. Принципиально не хотелось бы лезть в Ваш код и делать версию только для себя, зная, что это может пригодится и другим.

2) Я бы использовал такой вариант для простых объектов, без градиентов и прочей мишуры - только заливки и обводки. Выделил и применил скрипт. Часто бывают совсем простые объекты - по 50-100 шт. в группе - сущая ерунда для скрипта.
И кстати, не лишней будет опция, которая подчистит созданные скриптом свотчи в самом конце.

p.s. были большие ожидания от алгоритма dE 2000, но именно он на тесте дал самый отдалённый результат.
Планируете ли допилить алгоритм до идеального попадания в исходный цвет?
 

splxgf

12 лет на форуме
Сообщения
7 740
Реакции
3 421
p.s. были большие ожидания от алгоритма dE 2000, но именно он на тесте дал самый отдалённый результат.
Тут сложно сказать в чем проблема, либо я криво перенес (хотя сверял два раза), либо у Брюса ошибка, либо нужно понимать что это преимущественно отличие цвета (с игнорированием остальных показателей). Собственно dE94 добавил для случаев когда убираются ключевые цвета и нужно подобрать их адекватную по восприятию замену, переход от Lab к LCH в этом случае дает лучшие результаты.
2) Я бы использовал такой вариант для простых объектов, без градиентов и прочей мишуры - только заливки и обводки. Выделил и применил скрипт. Часто бывают совсем простые объекты - по 50-100 шт. в группе - сущая ерунда для скрипта.
Попробую реализовать FlyMode.
И кстати, не лишней будет опция, которая подчистит созданные скриптом свотчи в самом конце.
Абсолютно лишняя, через свотчи можно поправить результат.
Если нужно их удалить, то это одно движение мышкой по переносу группы на значок корзины.