以编程方式生成颜色图表?

Mat*_*zen 7 c#

在C#中,如何以编程方式生成以下图像?

http://deathmatchgame.files.wordpress.com/2010/07/color_picker.png

我很清楚这需要多长时间来处理.没关系.目前,绩效不是首要任务.

编辑请注意,我对仅显示灰度渐变的图像的右侧区域不感兴趣.

Zan*_*son 4

从外观上看,这是一张 HSL 色卡。下面的代码将生成一个二维颜色数组,该数组应与图像中的颜色相对应。我将实现留给FromHSL您,以及如何从该数组获取实际图像:

const int size = 1000;
const double ratio = 1.0 / size;
const double saturation = 1.0;
Color[,] colors = new Color[size,size];
for (int i = 0; i < size; i++)
{
    double lightness = 1.0 - i*ratio;
    for (int j = 0; j < size; j++)
    {
        double hue = j*ratio;
        colors[i, j] = FromHSL(hue, saturation, lightness);
    }
}
Run Code Online (Sandbox Code Playgroud)