.net 创建线性调色板

.net 创建线性调色板,.net,colors,color-picker,.net,Colors,Color Picker,我正在画一幅画,想要更好的颜色。我有X和Y之间的值,希望用功率谱表示它们更高的值=更亮的颜色。目前,我只是在RGB上使用黑色/白色0-255,但我希望它是具有比255 65k?更高颜色分辨率的多种颜色 我需要颜色在它们之间很好地褪色,所以如果0是黑色,100是白色,我需要50%为50%的白灰色。但我想要多个颜色的顺序,而不仅仅是RGB原色红色,绿色或蓝色 我更希望能够选择在什么点的颜色是不均匀分布。例如[0]=00000,[99]=44000,[149]=FF0000,[199]=FFFF00,

我正在画一幅画,想要更好的颜色。我有X和Y之间的值,希望用功率谱表示它们更高的值=更亮的颜色。目前,我只是在RGB上使用黑色/白色0-255,但我希望它是具有比255 65k?更高颜色分辨率的多种颜色

我需要颜色在它们之间很好地褪色,所以如果0是黑色,100是白色,我需要50%为50%的白灰色。但我想要多个颜色的顺序,而不仅仅是RGB原色红色,绿色或蓝色

我更希望能够选择在什么点的颜色是不均匀分布。例如[0]=00000,[99]=44000,[149]=FF0000,[199]=FFFF00,等等

现在我的问题是计算结果会是什么样子?我猜有一种简单/聪明的方式我没有想到

我模模糊糊地记得一些关于RGB以外的其他颜色计算方法的事情,这些方法对这个有用吗?或者最好的方法是在图片上使用某种画笔,然后对颜色值进行采样

我使用的是C.Net,但我不需要一个能完全工作的代码,所以任何示例/提示都很好。

您可以使用

当我为0时,你得到黑色,当我为1时,你得到白色。您可以将H从0变为1来更改色调或颜色。这是最大饱和度S=1

下面是一个映射示例。要使用HSL颜色,需要将其转换为RGB

// Assume x is a double in the interval [0; 1]
var l = x;
var h = x;
var s = 1D;
var rgb = ConvertHslToRgb(h, s, l);
您可以使用

当我为0时,你得到黑色,当我为1时,你得到白色。您可以将H从0变为1来更改色调或颜色。这是最大饱和度S=1

下面是一个映射示例。要使用HSL颜色,需要将其转换为RGB

// Assume x is a double in the interval [0; 1]
var l = x;
var h = x;
var s = 1D;
var rgb = ConvertHslToRgb(h, s, l);

谢谢找到了从HSL/HSB到RGB的.Net实现,谢谢。找到了从HSL/HSB到RGB的.Net实现