Это заинтриговало меня довольно давно.
Кто-нибудь знает алгоритм, который Windows 7 Aero использует для определения цвета, который будет использоваться в качестве выделения при наведении курсора на горячие кнопки на кнопках панели задач для работающих в данный момент приложений?
Это определенно основано на значке приложения, но я не могу видеть определенный образец того, откуда он получает значение цвета.
Это, кажется, не является одним из следующих:
- Среднее значение цвета из всей иконы, в противном случае вы получите коричневым цвет
все времяс разноцветными иконками , как Chrome. - В изображении используется больше всего цвета, в противном случае вы получите желтый значок SQL Server Management Studio (шестой слева). Кроме того, значок Chrome использовал красный, зеленый и желтый в равной степени.
- Цвет, расположенный в определенных пиксельных координатах на значке, потому что Chrome красный - это указывает на верхнюю часть значка - а Notepad++ (2-й справа) - зеленый - указывает на нижнюю часть значка.
Я задал этот вопрос на ux.stackoverflow.com, и он был закрыт как не по теме, но кто-то ответил со следующим:
Как описано Рэймондом Ченом в этой статье в блоге MSDN:
Некоторые люди спрашивают, как это делается. Это действительно ничего особенного. Код просто ищет преобладающий цвет в значке. (И поскольку визуальные дизайнеры являются сторонниками такого рода вещей, черный, белый и оттенки серого не считаются "цветами" для целей этого расчета.)
Однако я не был действительно удовлетворен этим ответом, потому что он не объясняет, как рассчитывается "преобладающий" цвет. Конечно, на значке SQL Management Studio преобладающим цветом, по моему мнению, является желтый. Все же основной момент - зеленый. Я хочу знать, в частности, что это за алгоритм.