[英]How do I find a color that is between two other colors?
我为每种颜色分配一个数值。 例如:
Color.red: 12
Color.Blue: 6
我需要找到两种颜色之间的颜色(例如,红色和蓝色)。 但是如何? 我已经试过了
(Color.red+color.blue)/2=> (12 + 6)/2 = 9
9对应于Color.yellow
您需要使用颜色的RGB值并在这些值之间进行插值。 使用单个值不会给您所需的歧视。
yx引用的答案用渐变色画一条线看起来像是一个不错的起点
对于计算机而言,颜色通常表示为六位数的十六进制值,其中红色,绿色和蓝色的顺序分别为两位数,例如FF0000为红色,00FF00为蓝色和0000FF为绿色。 您应该考虑如何在这些类型的值之间移动。
Michael Leigeber 在JavaScript中有一个很好的颜色转换算法 ,您可以下载该算法以查看他如何实现在两个值之间移动。
此问题需要您拆分每种颜色的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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.