2009-06-11 243 views
0

我为每种颜色分配一个数值。例如:如何找到两种其他颜色之间的颜色?

Color.red: 12 
Color.Blue: 6 

我需要找到两种颜色之间的颜色(例如,红色和蓝色)。但是如何?我已试过,

(Color.red+color.blue)/2=> (12 + 6)/2 = 9 

9对应于Color.yellow

+1

什么是色差,以及像素与颜色有什么关系? – RedFilter 2009-06-11 12:14:20

回答

1

颜色通常表示为用于与计算机红一个六位十六进制值,绿蓝&服用每两个数字的顺序例如FF0000为红色,00FF00为蓝色,0000FF为绿色。你应该考虑如何在这些价值之间转移。

Michael Leigeber有一个不错的color transition algorithm in JavaScript,你可以下载,看看他如何实现两个值之间的移动。

0

这个问题需要你分裂alpha,红色,绿色,每种颜色的蓝色其它的组件,找到每个的平均值,并创建一个新颜色:

Color first = Color.Red; 
    Color second = Color.Blue; 


    byte r = (byte)((first.R + second.R)/(byte)2); 
    byte g = (byte)((first.G + second.G)/(byte)2); 
    byte b = (byte)((first.B + second.B)/(byte)2); 
    byte a = (byte)((first.A + second.A)/(byte)2); 

    Color mix = Color.FromArgb(a, r, g, b);