|
1 / 1 / 1
Регистрация: 18.06.2008
Сообщений: 329
|
|
Определение цвета: белый или черный?31.01.2012, 11:06. Показов 5413. Ответов 39
Метки нет (Все метки)
Есть у меня фон, оперделяемый юзером. Как прикинуть его яркость по RGB, например, чтобы принять решение печатать мне на нем белым или черным.
Т.е фон темный или светлый? Ясен перец, что просто просуммировать составляющие RGB нельзя, ибо "G" в яркость вносит гораздо больший вклад, чем "B". Кстати, может есть пример, как сами винды определяют цвет подписи (Ч или Б) к иконкам на рабочем столе, в зависимости от выбранной юзером заливки?
0
|
|
| 31.01.2012, 11:06 | |
|
Ответы с готовыми решениями:
39
При игре пропадает изображение на мониторе и появляется белый или другого цвета экран Найти вероятность вытащить белый и черный шары |
|
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
|
||||||
| 31.01.2012, 11:44 | ||||||
|
Vot etot kod pozvolit raschepit' zvet na komponenti. On v text box ustanavlivaet zvet, protivopolozhniy zvetu formi.
0
|
||||||
|
1 / 1 / 1
Регистрация: 18.06.2008
Сообщений: 329
|
|
| 31.01.2012, 15:40 [ТС] | |
|
"Противоположный"- это надо понимать "дополнительный"?
Так это в светотехнике называется. )Но не нужен мне дополнительный цвет. Я буду рисовать черным или белым, но вот как с ним определиться??? А может, кто знает, нельзя ли RGB перегнать в GrayScale, типа... По идее он (GrayScale) должен быть с той же яркостью, что и исходный, а с уш с GrayScale определиться (темный, светлый) - элементарно. Уш как-нибудь. )
0
|
|
|
1 / 1 / 1
Регистрация: 18.06.2008
Сообщений: 329
|
|
| 31.01.2012, 15:42 [ТС] | |
|
Вдогонку:
RGB перегнать в GrayScale без дополнительных контролов! Чиста функция или формула...
0
|
|
|
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
|
|
| 31.01.2012, 18:20 | |
|
Vi moj kod probovali xot'? Ya-to znayu, chto zvet dopolnitel'nyj. A vi znaete, chto moj kod kak raz i vipolnyaet vashu zadachu?
0
|
|
|
1 / 1 / 1
Регистрация: 18.06.2008
Сообщений: 329
|
|
| 01.02.2012, 10:57 [ТС] | |
|
Пробовал.
Получил дополнительный цвет. И что? Задача остается той же: он "темный" или "светлый"? )Мне надо печатать не дополнительным (противоположным) цветом, а черным или белым! Каким?
0
|
|
|
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
|
|
| 01.02.2012, 16:30 | |
|
О, дошло. Пока не знаю. Если узнаю, сообщу. Очень хорошая задача.
0
|
|
|
Сумрак
|
|
| 01.02.2012, 18:25 | |
|
Забавно... Я наоборт не совсем понял вопроса, но понял где нужно посмотреть...
Книга - Джон Кларк Крейг, Джефф Уэбб "Visual Basic 5.0" Тут есть примеры извращения над цветами... Тут есть тема... Вычеслить "Цветовую константу по RGB или HSV значениям" Код класса великоват, вилы набирать... но если в тему наберу.. |
|
|
Сумрак
|
|
| 01.02.2012, 18:29 | |
|
Добавлю.. в конце прочитал..
Цветовая модель HSL аналогична HSV но использует целочисленные значения от 0 до 240 и несколько другой алгоритм их преобразования. В тоже время концептуально и функционально обе системы близки. |
|
|
Сумрак
|
|
| 01.02.2012, 18:34 | |
|
Судя из текста. Эта HSL использовалась в Win 95 и NT4 для определения допустимых цветов для системы....
|
|
|
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
|
||||||
| 01.02.2012, 18:46 | ||||||
|
Letter D,
Вот этот пример делает, что Вам надо. Магическое число 381 открывает дверь в черно-белый мир.
0
|
||||||
|
1 / 1 / 1
Регистрация: 18.06.2008
Сообщений: 329
|
|
| 01.02.2012, 21:58 [ТС] | |
|
Нет!
((((Я в самом первом сообщении уберегал от этой ошибки: [bold]Ясен перец, что просто просуммировать составляющие RGB нельзя, ибо "G" в яркость вносит гораздо больший вклад, чем "B".[/bold] Например на чисто зеленом фоне (RGB:0,255,0) белым цветом особо не порисуешь. А ведь 255 < 381. Это неверный подход (Надо как-то вычислять яркость. Кстати, при преобразовании в GrayScale этого чисто зеленого цвета фотошоп показал, что его яркость 87% !!! У "R", "G" и "B" разные вклады в яркость, разные коэффициенты. (Кстати, разложить цвет на RGB я уж сумею, не надо постоянно этих формул )) Надо - идею!Или пойду читать книшку по светотехнике, что-то там должно быть... Неужели в виндах ничего нет? Сами-то они справляются с этой "проблемой"
0
|
|
|
1 / 1 / 0
Регистрация: 22.04.2011
Сообщений: 47
|
|
| 02.02.2012, 02:23 | |
|
Y = 0.299*R + 0.587*G + .0114*B
0
|
|
|
1 / 1 / 0
Регистрация: 22.04.2011
Сообщений: 47
|
|
| 02.02.2012, 02:24 | |
|
Опечатка. Последний коэффициент равен 0,114
0
|
|
|
1 / 1 / 0
Регистрация: 22.04.2011
Сообщений: 47
|
|
| 02.02.2012, 02:26 | |
|
Ну, на практике, эту всю сумму делим на 3...
0
|
|
|
1 / 1 / 0
Регистрация: 22.04.2011
Сообщений: 47
|
|
| 02.02.2012, 02:27 | |
|
Нет, с последним постом я чего-то переборщил. Ничего делить не надо.
0
|
|
|
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
|
||||||
| 02.02.2012, 05:34 | ||||||
|
Letter D,
Ну раз вы такой нежный и белым по зеленому для вас неэстетично, то ниже я привожу код для цветовых гурманов :0) Mz@2, У меня ощущение, что ваш код не всегда выдает черно-белое (не серое) решение. ОК, в модуль идет этот код:
0
|
||||||
|
1 / 1 / 1
Регистрация: 18.06.2008
Сообщений: 329
|
|
| 02.02.2012, 11:11 [ТС] | |
|
VladConn,
[bold]"Ну раз вы такой нежный и белым по зеленому для вас неэстетично"[/bold] А Вы сами-то попробовали по [bold]яркозеленому[/bold] (0,255,0) написать белым? )Это для всех неэстетично. Новый пример - это [bold]тоже не то[/bold] . Он и для (255,0,0) и для (0,255,0) и для (0,0,255) возвращает одинаковую яркость, а это неправильно. Собственно система HSL ("хью, сатурейшн, лайтнесс") - это "эф, лямбда, пэ" (поток, цвет, насыщенность цвета) в светотехнике, откуда известно, что ни поток, ни лайтнесс субъективной информации (для человеческого глаза!) не несут, если не известен цвет. А для энергетики - да, несут, а именно - энергия (яркость, поток) - одинаковы. Можно и инфракрас с такой же энергией послать... только мы его увидим черным. Эта... т.е хотел сказать, что от HSL толку тоже никакого. Буду пытать пример от Mz@2. Там что-то проглядывает похожее на светотехническую формулу. Тока я думал, что зависимость должна быть нелинейной... а оно, вон как. )
0
|
|
|
1 / 1 / 1
Регистрация: 18.06.2008
Сообщений: 329
|
|
| 02.02.2012, 11:15 [ТС] | |
|
Хотя сам пример с функцией [bold]HSL2RGB[/bold] полезен. Это- полезная функция.
)
0
|
|
|
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
|
|
| 02.02.2012, 14:04 | |
|
Letter D
Насчет нежности - то шутка. Возвращаясь к проблеме яркости. Вы знаете, то что RGB2HSL и для (255,0,0) и для (0,255,0) и для (0,0,255) возвращает одинаковую яркость, так это как раз правильно. Я проверил в Paint. Только в нем он не лайтнесс, а luminosity. Что, впрочем, в сущности одно и тоже. Разница в нормировании. Там это от 0 до 240. Главное скажите: оно для вас работает или нет? Я для некоторых цветов проверил - так у меня реагировало верно. VladConn
0
|
|
| 02.02.2012, 14:04 | |
|
Помогаю со студенческими работами здесь
20
Изменить в другой программе белый текст на черный
В приложениях белый фон поменялся на черный. и пропала контрастность в шрифтах metro
Сколькими способами можно выбрать на шахматной доске два квадрата – белый и черный? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
|
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|