我有一个WTL C ++应用程序,我希望用户能够为某些UI元素选择不同的颜色,并使用GradientFill
API调用应用渐变填充。但是,我不希望让用户选择渐变的开始和结束颜色,而是希望他们能够选择“基本”颜色,并让我的应用程序自动计算合适的开始/结束颜色。我想最终得到一个类似于Windows用于各种主题元素的填充。基色可以是渐变的“中间”颜色,我的应用程序以某种方式为渐变开始计算稍浅的颜色,为渐变结束计算稍暗的颜色。或者,我可以使用基数作为起始颜色并计算结束,反之亦然。
我确信这对于一些RGB宏魔术会相对容易,但我真的不知道从哪里开始。任何想法都会受到欢迎。
答案 0 :(得分:2)
RGB色彩空间不适合这种情况。使用HSL or HSV,通过改变单个组件可以轻松自动生成美观的渐变。您可以在API中使用从HSL / V转换为RGB三元组simple。