1

我有一个 WTL C++ 应用程序,我希望用户能够为某些 UI 元素选择不同的颜色,并使用GradientFillAPI 调用应用渐变填充。但是,我不希望用户选择渐变的开始和结束颜色,而是希望他们能够选择“基本”颜色,并让我的应用程序自动计算合适的开始/结束颜色。我想最终得到一个类似于 Windows 用于各种主题元素的填充。基色可能是渐变的“中间”颜色,我的应用程序以某种方式计算渐变开始的颜色略浅,渐变结束的颜色略深。或者,我可以使用基础颜色作为开始颜色并计算结束颜色,反之亦然。

我确信使用一些 RGB 宏魔法会相对容易,但我真的不知道从哪里开始。任何想法都会受到欢迎。

4

1 回答 1

2

RGB 色彩空间不适合这种情况。使用HSL 或 HSV:通过改变单个组件很容易自动生成好看的渐变。从 HSL/V 转换为可在 API 中使用的 RGB 三元组很简单

于 2010-01-29T19:46:58.733 回答