当前位置: 代码迷 >> C# >> C#获取渐变色,该如何解决
  详细解决方案

C#获取渐变色,该如何解决

热度:111   发布时间:2016-05-05 04:56:59.0
C#获取渐变色
遇到一个项目要求是这样的:
用户输入一个起始颜色、一个终止颜色
希望能得到起始颜色、终止颜色之间某一点的颜色(得到2个颜色点之间的色线)。

我的做法是这样的,取到两个颜色的RGB分量,然后分别做一下比例运算,得到一个颜色的RGB分量,就是这个颜色。但是发现得到的颜色不符合要求。
例如,起始点选择 黄色、终止点选择蓝色,我得到的颜色可能是位于黄色到蓝色渐变之间颜色,最终得到的色线是这样的

但是实际要求得到的颜色是这样的

要求是在色相之间的渐变。

大家有没有什么计算方法能得到这种结果?不用很精确。
------解决思路----------------------
获取某个点的颜色,用bitmap的GetPixel
------解决思路----------------------
你是不是多改变了一个G的分量?G 保持0可以么?
------解决思路----------------------
下图有很长一段是绿色,也就是G分量值接近255,R和B接近0,知道这个规律就好办了
起始的黄色记为颜色a, 终止的蓝色记为b,则大致的变换过程为(省略号表示那一段不变或者微量的变化):
R:   a.R -> 0.........   0 -> b.R
G:   a.G -> 255...255 -> b.G
B:   a.B -> 0.........   0 -> b.B
  相关解决方案