【问题标题】:Calculating a gradient fill's start and end colours given a base colour在给定基色的情况下计算渐变填充的开始和结束颜色
【发布时间】:2011-01-11 00:00:46
【问题描述】:

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

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

【问题讨论】:

    标签: c++ winapi colors wtl


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-04
      • 2010-09-24
      • 1970-01-01
      • 1970-01-01
      • 2014-08-21
      相关资源
      最近更新 更多