繁体   English   中英

如何找到介于其他两种颜色之间的颜色?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM