这让我很感兴趣。
有谁知道Windows 7 Aero用于确定颜色的算法,该颜色用作当前正在运行的应用程序的任务栏按钮上的热跟踪悬停突出显示吗?
它绝对基于应用程序的图标,但是我看不到从中获取颜色值的特定模式。
这并不似乎是以下任意的:
- 整个图标的平均颜色值,否则,Chrome等多色图标
始终会变成棕色。 - 颜色在图像中使用最多,否则,SQL Server Management Studio图标将变为黄色(从左数第六)。另外,Chrome图标使用的红色,绿色和黄色均等。
- 位于图标内某些像素坐标处的颜色,因为Chrome是红色的-表示图标的顶部-而Notepad ++(从右数第二个)是绿色的-表示图标的底部。
我在ux.stackoverflow.com上问了这个问题,它被关闭为题外话,但有人回答如下:
如Raymond Chen在此MSDN博客文章中所述:
有人问它是如何完成的。真的没什么特别的。该代码仅在图标中查找主要颜色。(并且,由于视觉设计师是这类事情的坚持者,因此,出于计算目的,黑色,白色和灰色阴影不被视为“颜色”。)
但是我对这个答案不是很满意,因为它没有解释“主要”颜色是如何计算的。当然,在SQL Management Studio图标上,至少在我看来,主要的颜色是黄色。然而亮点是绿色。 我想知道具体是什么算法。
An average colour value from the entire icon, otherwise you would get brown all the time.
那没有道理。例如,Skype,命令提示符或µTorrent图标如何平均变成棕色?ಠ_ఠ(上一次我对Windows的颜色计算算法进行逆向工程时,花了几年的时间才花心思,而且还花了很多不同的工作才能弄清楚。一个在某一点)。