【发布时间】:2016-09-02 08:20:56
【问题描述】:
在我的程序中,用户可以选择一种颜色,然后我必须从该颜色生成 25 个渐变。是否有任何功能可以使用或 sb 是否知道如何做到这一点?第一种颜色必须是白色,第 25 种颜色必须是深色。 谢谢:)
【问题讨论】:
标签: vb.net algorithm colors transformation
在我的程序中,用户可以选择一种颜色,然后我必须从该颜色生成 25 个渐变。是否有任何功能可以使用或 sb 是否知道如何做到这一点?第一种颜色必须是白色,第 25 种颜色必须是深色。 谢谢:)
【问题讨论】:
标签: vb.net algorithm colors transformation
简单的方法:
我假设颜色在 RGB 格式中是已知的。
因此,只需将 R、G、B 的每个值乘以一个因子即可改变亮度。
示例:
如果你有 R=12, G=40, B=128
您可以将每个乘以 0.5 => R=6, G=20, B=64 以获得更暗的颜色版本。
更复杂的方式:
在其他颜色空间中转换您的颜色,该颜色空间具有单独的 lightness 组件,例如Lab color space。然后,您可以简单地更改 lightness,然后将结果转换回 RGB(如果需要)。
【讨论】:
使用适当的色彩空间。 HSV/HSL 使用饱和组件,cna 可以准确地实现您想要的。正如其他答案所暗示的那样,CIELab 现在被认为比旧的 HSV/HSL 更合适。
【讨论】: