Заголовок сообщения: Алгоритм смешивания цветов Добавлено: 2 Май 2007, 10:41:20
Кто-нибудь сталкивался с программным алгоритмом смешивания цветов? Нужна полная имитация палитры с реальными красками.
Гуглю параллельно, но ничего толкового пока не нашел
bleep, ты не ответил на вопрос. Но для экономии времени -- кратко: поскольку результат смешивания реальных красок зависит от сочетания конкретных красок конкретных производителей, то никакого алгоритма здесь нет и быть не может. Можно провести серию экспериментов и использовать интерполяцию для промежуточных значений, но ввиду огромного объема работы практической пользы я в этом не вижу.
Так что полного соответствия реальному смешиванию ты не получишь. Можно получить более-менее внятную имитацию, представив каждую краску как набор субтрактивных пигментов и смешивание тупо реализовывать усреднением. Но здесь встанет проблема получения исходных данных.
Соответственно, вопрос: чего ты хочешь на самом деле?
bleep, да программ то полно по колору, я как то раз в магазине устанавливал, так там всякие поправки вводятся по производителям и даже марке краски. Вообщем мудреная прога была, всю краску в магазине перевел пока разобрался
Может в этом направлении стоит поискать?
bleep, да программ то полно по колору, я как то раз в магазине устанавливал, так там всякие поправки вводятся по производителям и даже марке краски. Вообщем мудреная прога была, всю краску в магазине перевел пока разобрался Может в этом направлении стоит поискать?
Мне бы найти описание конкретного алгоритма смешивания цветов цифрами... Программу то не расковыряешь, чтобы решение в веб перенести
Crazy писал(а):
Количества пигментов в смешиваемых красках.
Так А как узнать количество пигментов цветов исходя из его значения в RGB?
Так А как узнать количество пигментов цветов исходя из его значения в RGB?
Никак.
Впрочем, можно по-тупому перевести в CMYK (пользуясь тем фактом, что алгоритм такого перевода известен) и использовать эти коэффициенты. Это будет работать, но совсем грубо. Но не могу исключить того, что эта степень точности тебя устроит.
Впрочем, можно по-тупому перевести в CMYK (пользуясь тем фактом, что алгоритм такого перевода известен) и использовать эти коэффициенты. Это будет работать, но совсем грубо. Но не могу исключить того, что эта степень точности тебя устроит.
Если складывать cmyk, то цвет будет стремиться к черному, т.е. желтый в сумме с синим даст почти черный, а не зеленый, как на палитре Если брать средние значения, соответственно, будет получаться серый...
Crazy писал(а):
Предположим, есть у тебя этот алгоритм. И каждая краска в нем кодируется 10 коэффициентами a1..a10. Где ты их собираешься получить?
Вот, в этом и проблема... Вообще, расчитываю найти готовое решение (формулу). Почему-то думается, что это кому-то было надо до меня
Потому, что у нас не 4 компонента CMYK, а сотни различных пигментов. Соответственно, могут существовать тысячи комбинаций, дающие на выходе один и тот же RGB-цвет. При этом с точки зрения смешивания с другими красками эти цвета не эквивалентны друг другу.
BTW, если мы говорим о совершенно асбтрактных красках, то можно поиграть так: работать в системе HSB и при смешивании 2 тонов на выходе выдавать тон, лежащий на colorwheel посредине между ними. Компоненты S и B имитировать белой и черной краской (при смешивании брать среднее).
Врать будет сильно и не будет иметь отношения к реальным краскам. Но при сложении желтого с синим даст зеленый.
BTW, если мы говорим о совершенно асбтрактных красках, то можно поиграть так: работать в системе HSB и при смешивании 2 тонов на выходе выдавать тон, лежащий на colorwheel посредине между ними. Компоненты S и B имитировать белой и черной краской (при смешивании брать среднее). Врать будет сильно и не будет иметь отношения к реальным краскам. Но при сложении желтого с синим даст зеленый.
Пробовал. Остановился, когда понял, что сложение синего с зеленым даст голубой
Перейдем таки к цифре.
Какой именно алгоритм нужен - CMYK или RGB?
Проще говоря, субтрактивное или аддитивное смешение?
Что с счем смешивать собрались, если это не коммерческая тайна?
З.Ы. Вообще-то тут все довольно просто...
_________________ Не кочегары мы, не плотники,
Но сожалений горьких нет -
Как нет?
А мы дизайнеры-художники,
И с высоты вам шлем привет -
Привет!
bleep, А какая конечная цель ? создать полноцветную палитру для выбора цвета фона?
Тогда можно и нужно использовать flash8 , там есть средства для реализации такой простой идеи.
Там-же, кстати, можно попробовать ээ.. "смешать" краски по стандартным фотошопским режимам (overlay, multiply и т.д.)
Если же цель посерьёзней то опять без флеша не обойтись
Можно взять два цвета: 255.0.0 + 255.255.128 = 255.128.0
(100% красный + 50% жёлтый смешали на белом фоне, получился оранжевый)
bleep, А какая конечная цель ? создать полноцветную палитру для выбора цвета фона? Тогда можно и нужно использовать flash8 , там есть средства для реализации такой простой идеи.
А можно поподробнее?
bE(o0L писал(а):
Там-же, кстати, можно попробовать ээ.. "смешать" краски по стандартным фотошопским режимам (overlay, multiply и т.д.)
Ни один фотошоповский режим наложения не имитирует смешивание реальных красок.
bE(o0L писал(а):
Если же цель посерьёзней то опять без флеша не обойтись Можно взять два цвета: 255.0.0 + 255.255.128 = 255.128.0 (100% красный + 50% жёлтый смешали на белом фоне, получился оранжевый)
Но 0.0.255 + 255.255.0 = 255.255.255
(если смешать синий с желтым получится зеленый, а не белый)
Ни один фотошоповский режим наложения не имитирует смешивание реальных красок.
ну значит в фотошопе картину нарисовать принципиально не возможно =) --
Цитата:
А можно поподробнее?
подробнее в соответствующем разделе, в принципе. Если в двух словах то берёшь стандартную палитру (можно print screen c любого графического редактора), создаешь битмап, далее через .getPixel() узнаешь цвет, в который тычешь.
В модели RGB смешение светов аддитивное (т.е. при увеличении значения итог получается светлее), а в модели CMYK - субтрактивное. При увеличении цвет становится темнее.
bleep, мешай в CMYK. А еще лучше - в CMY.
КАК.
Просто: RGB(a,b,c) = CMY(255-a,255-b,255-c)
Т.е. 255.255.255 - это черный. Кстати, если взять краски Cyan, Magenta и Yellow (в наборах Ferrario они есть), то при смешении получится черный. Проблема в другом - пропорции не 1/1/1, а несколько другие (совсем немножко прибаить к одному, убавить от другого...), но это уже вопрос цветокоррекции и восприятии цвета человеческим глазом. В теории все так, как я описал.
Кстати, есть такое понятие, как нормализация. Если смешиваешь , к примеру, 200,50,0 с 200,100,30 то получится сначала 400,150,30 - нельзя ни в коем случае "обрезать" до 255 - это только для RGB. С модели CMY надо пропорционально уменьшать:
Просто если к белому свету добавить еще, например, красный луч, то он от этого темнее не станет (станется белым - по нашему восприятию), а если к черной краске добавить синюю, то она 100% станет светлее (синее), отсюда и нормализация.
При работе со смешиванием RGB (аддитивным) нормализация не пройдет, надо "срезать" до 255.
Кстати, если уж пошла об этом речь, то фотошоп при субтрактивном смешении "срезает" цвета. Хотя кто знает, может это в данном случае и првильно. Но для красок - однозначно нормализировать.
Если не хочется терять точности пропорций, советую использовать не один байт для каждого цвета, а, например, два (16 бит). Можно и больше, но надо таки задумываться о системных ресурсах относительно человеческих восприятий
_________________ Не кочегары мы, не плотники,
Но сожалений горьких нет -
Как нет?
А мы дизайнеры-художники,
И с высоты вам шлем привет -
Привет!
Последний раз редактировалось Бaзиль 13 Май 2007, 00:45:44, всего редактировалось 2 раз(а).
Бaзиль,
Если я все правильно понял, то вернее не нормализовывать CMYK, а брать его изначально в процентах, которые показывают содержание определенной краски в данном цвете, складывать, и при этом понимать, что количество получившейся краски в два раза больше. По материалу: http://www.colorcube.com/articles/math/math.htm Как считаете?
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.