【问题标题】:Creating a linear color palette创建线性调色板
【发布时间】:2011-11-06 22:47:56
【问题描述】:

我正在绘制 FFT,并且想要更好的颜色。我有 X 和 Y 之间的值,并希望在功率谱中表示它们(更高的值=更亮的颜色)。目前我只使用黑/白(RGB 上的 0-255),但我希望它是多种颜色,分辨率高于 255(65k?)。

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

最好我希望能够选择颜色的位置(不均匀分布)。例如 [0]="#00000"、[99]="#44000"、[149]="#FF0000"、[199]="#FFFF00" 等

现在我的问题是计算结果如何?我猜有一些我没有想到的简单/聪明的方法。

我隐约记得除了 RGB 之外的其他颜色计算方法,它适用于此?或者是在图片上使用某种画笔的最佳方式,然后对颜色值进行采样?

我正在使用 C# .Net,但我不需要完整的工作代码(我可以制作) - 所以任何示例/提示都会很好。

【问题讨论】:

    标签: .net colors color-picker


    【解决方案1】:

    您可以使用HSL color space

    当 L 为 0 时,你得到黑色,当 L 为 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);
    

    【讨论】:

    猜你喜欢
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    • 2018-03-15
    • 1970-01-01
    相关资源
    最近更新 更多