|
Помогите по алгоритму сравнения цветовОбсуждение темы Помогите по алгоритму сравнения цветов в разделе HTML, CSS, JavaScript, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Решила сделать следущую штуку http://archizona.ru/ral_pantone.html . Есть куча вееров цветов (палитр) там, рал, пантон, тиккурила. Хочу сделать, так чтобы можно было цвета из ... |
|
Опции темы |
08.12.2010, 10:15 | #1 |
|
Решила сделать следущую штуку http://archizona.ru/ral_pantone.html . Есть куча вееров цветов (палитр) там, рал, пантон, тиккурила. Хочу сделать, так чтобы можно было цвета из рала в пантон перевести (например) для этого перевожу все цвета из вееров в формат ргб. итого у меня 2 массива цифр (рал=RрGрBр и пантон=RпGпBп) теперь мне нужно щелкнуть по цвету из палитры рал и найти ближайший в палитре пантон.
И ТАК АЛГОРИТМ для поиска ближайшего. Для этого я сравниваю сумму модулей разниц значений составляющих цветов. rgbBEST=abs(Rр-Rп)+abs(Gp-Gп)+abs(Bp-Bп) затем ищу самый маленький rgbBEST и считаю, что при этом самом маленьком и будет ближайший. И вроде все работает но ЕСТЬ косяки- для этого алгоритма цвета в RGB (5,5,5) и (0,0,15) абсолютно одинаковы. Как математикой убрать этот косяк? вот код var dBest,pNo,dH,dS,dV,dA,dR,dG,dB,oInRGB,oInHSV,oOutR GB,oOutHSV; pNo=0; oInHSV=rgb2hsv(rgb); var sArr = eval("a"+libraryName); dBest=3000; for(var a=0;a<sArr.length-1;a++){ arrC=sArr[a].split("~")[1]; oOutRGB=html2rgb(arrC); dR=Math.abs(rgb.r-oOutRGB.r); dG=Math.abs(rgb.g-oOutRGB.g); dB=Math.abs(rgb.b-oOutRGB.b); dA=dR+dG+dB; if(dA<dBest){ dBest=dA; pNo=a; } } return(sArr[pNo]); |
|
08.12.2010, 11:36 | #2 |
|
штука прикольная конечно
но вы забыли учесть разность выдачи на разных мониторах, и если вот у меня например (не дешевая но всеже TN матрица) то цвета RAL 3002 и RAL 3003 один в один, хоть убейся а в реальности они разные даже для непрофессионального взгляда, и такие ньюансы могут вам в будущем не помочь а навредить в работе с геморойными клиентами + пантоны (неуверен насчет RAL) для того и создавались (для печати исходно) чтобы получать готовые краски и этими красками в отдельный проход от CMYK печатать, и никто вам корректно ненапечатает через обычную смесь нужный пантон, какбы идеально вые его не подгоняли на любом проф мониторе |
|
09.12.2010, 09:57 | #3 |
|
Это и ежикам понятно, что на мониторе цвета не такие как на веере. По этим палитрам никто не будет себе обои на кухню выбирать. Я сначала вообще хотела на мониторе цвета не показывать, но оставила для наглядности. ВОПРОС НЕ В ЭТОМ. как мне эту сумму долбаную переделать, чтобы для алгоритма был более предпочтительней цвет (5,5,5) а не (0,0,15) то есть выбирался бы более "ровный" ряд. Думала перемножить все и взть кубический корень, но тоже тупо. Плохо я видно в школе математику учила.
Добавлено через 22 часа 13 минут не ну где умища-то? Сегодня утром меня осинило, что синеватый цвет - это цвет в котором синего цвета в % содержании больше чем остальных, поэтому сравнивать нужно не значения, а соотшения цветов. + еще добавить в формулу яркость этого цвета. Модель HSV лучше для этого подходит. ..... мдааааааа.... дела...... Последний раз редактировалось archizona; 09.12.2010 в 09:57.. Причина: Добавлено сообщение |
|
10.12.2010, 00:25 | #4 |
|
вообще не стал очень углублятся в код. Потому что все палитры и библиотеки переходов от одной к другой - не такое уж и простое занятие, мало того, все ваши переходы как было замечено ранее - не принесут пользы - какую палитру использует система (вернее, ваш браузер, потом ваш монитор) та и будет использоваться. И все эти переходы - условное, нужное только для типографии, для интернете есть стандартизированные палитры (там не много цветов), которые везде примерно одинаково выглядят
|
|
01.03.2011, 15:15 | #5 |
|
Какие палитры вы называете стандартизированными? На сайте Тиккурилы есть РГБ значения для всех их красок. Есть такие же стандартизированные РГБ значения для палитры RAL, PANTONE, Капарол итд. Теперь, допустим, я покрасила стены в спальне Тиккурилой М300 (на банке написано) и хочу покрасить ЖЕЛЕЗНУЮ спинку кровати в такой же цвет. Железки у нас на заводе красят по палитре РАЛ, поэтому мне им нужно назвать цвет из этой палитры максимально близкий к моему М300. Ясен пень цвета будут немножко оличаться. Но благдаря этому простому скриптику я за 5 секунд могу узнать, что железную спику кровати мне нужно красить в РАЛ 1003, потому что он ближайший по значениям RGB к цвету TIKKURILA M300. Вот и все, что я хотела изобразить.
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
TestVPS - сервис тестирования и сравнения VPS/VDS хостингов | testirovschik | Платный хостинг | 0 | 01.04.2016 10:05 |
Сравнения | hostme | Платный хостинг | 2 | 06.03.2013 08:57 |
минимум цветов 2 | bliznets | Зал дебютантов | 20 | 30.03.2004 08:49 |
Минимум цветов | bliznets | Зал дебютантов | 12 | 15.03.2004 11:05 |
Помогите найти программку по сочетанию цветов для дизайна | Web | Кальянная | 2 | 08.08.2003 20:24 |
Реклама на форуме
Условия размещения рекламы
Биржа ссылок
Заработай на сайте!
|