как производится расчет значений RGB в цвете и внешнем виде диалоговых окон

В Windows 7 и Windows XP диалоговое окно «Цвет и внешний вид окна» находится в разделе «Панель управления \ Внешний вид и персонализация \ Персонализация». Изменение «Color1» элемента «3D-Border» приведет к изменению следующих записей в ключе реестра.

[HKEY_CURRENT_USER \ Панель управления \ Цвета]

содержащие результирующие rgb-значения:

Группа1 (те же значения):

InactiveTitle, AppWorkspace, ButtonShadow, Graytext

Группа 2 (те же значения, отличные от значений группы 1):

Полоса прокрутки, ButtonHilight

Кто-нибудь знает, как эти значения вычисляются из заданных rgb-значений "Color1"? После безрезультатного поиска в Интернете и экспериментов со многими значениями мне так и не удалось найти убедительный способ, как это сделать. Кто-нибудь знает правила для этого? Любая помощь будет оценена.

Я загрузил несколько

person quadpus    schedule 05.08.2013    source источник
comment
Должно быть какое-то числовое соотношение. Вы можете привести несколько примеров пар «до и после»? Это либо добавление или умножение пространства RGB, либо просто повышение или понижение яркости в пространстве HSB.   -  person Jongware    schedule 05.08.2013
comment
@Jongware: Возможно, я не вижу леса за деревьями, я не совсем знаком с работой со значениями rgb, в частности. Я загрузил некоторые из моих исследованных данных   -  person quadpus    schedule 05.08.2013


Ответы (1)


Когда вы устанавливаете красный цвет «3D-границы», он меняет цвет «Face Face» на красный и интерполирует этот цвет для создания различных более светлых и более темных оттенков красного, которые использовались для установки некоторых связанных значений цвета.

Дело в том, чтобы с минимальными усилиями создать единообразную тему. Все, что вам нужно сделать, это установить «базовый» цвет для 3D-объектов, а все остальные цвета рассчитываются автоматически, чтобы гарантировать, что объекты имеют соответствующий 3D-вид.

Некоторые из этих значений, например цвета подсветки и тени, используемые для 3D-объектов, не могут быть напрямую настроены из апплета панели управления. Однако их можно установить вручную в реестре, и вы можете вызвать функцию SetSysColors для обновления запущенных в данный момент приложений.

Как вы думаете, почему вам нужно знать фактический алгоритм, который использует Windows? Какую проблему ты пытаешься решить? Для чего вы собираетесь использовать эту информацию?

Я не думаю, что точный алгоритм где-нибудь задокументирован. Код был частью ОС, по крайней мере, с Windows 95.

person Cody Gray    schedule 05.08.2013
comment
Что ж, экспериментируя и исследуя возможности этого диалогового окна «Цвет и внешний вид окна», я не ожидал, что натолкнусь на внутренний секрет окна, я сосредоточился скорее на математическом контексте, чем на понимании смысла создания всей этой темы. спасибо, Коди Грей. - person quadpus; 07.08.2013