Windows颜色为单个整数

时间:2013-02-21 10:31:50

标签: c# colors drawing system

我正在使用仅支持颜色RGB组件的字节值的API。我试图区分可变数量的项目,比如介于8和12之间。我想为每个项目分配一种颜色。因此,如果有10个项目,我会将范围划分为10并为每个项目分配相应的颜色(想想彩虹)。看起来toArgb()会起作用,但更多阅读表明可能使用十六进制。我显然需要提取RGB值以发送回API。

我该如何做到这一点?

1 个答案:

答案 0 :(得分:0)

据我了解,您将输入颜色范围和项目数量。此外,您希望生成的颜色代表颜色渐变。

试试这个:

// set the edges of the color range
var firstColor = Color.Red;
var secondColor = Color.Green;

int rMin = firstColor.R;
int rMax = secondColor.R;
int bMin = firstColor.B;
int bMax = secondColor.B;
int gMin = firstColor.G;
int gMax = secondColor.G;

int size = 10;

for (int i = 0; i < size; i++)
{
    var rAverage = rMin + (int)((rMax - rMin) * i / size);
    var gAverage = gMin + (int)((gMax - gMin) * i / size);
    var bAverage = bMin + (int)((bMax - bMin) * i / size);
    var currentColor = Color.FromArgb(rAverage, gAverage, bAverage);
    // TODO: use the currentColor
}