【问题标题】:how is the calculation of rgb values done in the dialog "windows color and appearance"如何在“窗口颜色和外观”对话框中计算 rgb 值
【发布时间】:2013-08-05 22:40:09
【问题描述】:

在 Windows 7 和 Windows XP 中,您可以在“控制面板\外观和个性化\个性化”下找到“窗口颜色和外观”对话框。 更改项目“3D-Border”的“Color1”将导致注册表项中的以下条目发生更改

[HKEY_CURRENT_USER\控制面板\颜色]

包含生成的 rgb 值:

Group1(相同的值):

InactiveTitle、AppWorkspace、ButtonShadow、Graytext

Group2(值相同,与 group1 不同):

滚动条、按钮高亮

有谁知道这些值是如何从“Color1”的给定 rgb 值计算出来的? 在没有结果的情况下搜索网络并玩弄了许多值之后,我没有碰巧找到一种可行的方法来做到这一点。 有谁知道这个规则? 任何帮助将不胜感激。

我上传了一些demo values,系统地处理下部的值。还有一个 text file 在颜色更改为红色 (255 0 0) 后比较受影响的注册表项 [HKEY_CURRENT_USER\Control Panel\Colors]。

【问题讨论】:

  • 一定有某种数值关系。你能举一些“前后”配对的例子吗?它要么是 RGB 空间的加法或乘法,要么只是 HSB 空间中更高或更低的亮度。
  • @Jongware:也许我只见树木不见森林,我对处理 rgb 值并不十分熟悉。我上传了一些我的研究数据

标签: windows-7 colors windows-xp rgb


【解决方案1】:

当您将“3D Border”颜色设置为红色时,它会将“Button Face”颜色更改为红色,并对该颜色进行插值以生成各种较浅和较深的红色阴影,用于设置一些相关的颜色值。

关键是要以最少的努力创建一个外观一致的主题。您只需为 3D 对象设置“基础”颜色,然后自动计算所有其他颜色以确保对象具有适当的 3D 外观。

其中一些值,例如用于 3D 对象的高光和阴影颜色,不能直接从控制面板小程序进行配置。不过可以在注册表中手动设置,也可以调用SetSysColors函数更新当前运行的应用程序。

为什么您认为您需要了解 Windows 使用的实际算法?你想解决什么问题?你打算用这些信息做什么?

我不认为任何地方都记录了确切的算法。至少从 Windows 95 开始,该代码就已成为操作系统的一部分。

【讨论】:

  • 好吧,玩弄并研究那个“窗口颜色和外观”对话框的功能,我没想到会遇到 Windows 内部秘密,我更关注数学上下文而不是理解含义创造整个主题。谢谢你,科迪·格雷。
猜你喜欢
  • 1970-01-01
  • 2016-05-19
  • 2016-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-05
  • 2010-11-07
  • 2013-07-03
相关资源
最近更新 更多