2

我使用下面的代码在颜色上实现了白光/黑光(照明设计器功能)。而不是遍历位图中的颜色,我想使用 ImageAttributes 上的 ColorMatrix 来实现它。我已经完成了停电部分,基本上在 -1(完全停电)和 0(无停电)之间调整 Matrix40-42。我还可以通过将 Matrix40-42 设置为 1(完全白光)和 0(无白光)来进行白光。但我想一口气把它们都做完。这是之前对颜色进行操作的代码:

public static System.Drawing.Color AdjustColor(System.Drawing.Color input)
{
    var hsv = new HSV(input);

    // Test values for white out and black out
    double whiteOut = 0.5;
    double blackOut = 0.5;

    hsv.Saturation = hsv.Saturation + (HSV.White.Saturation - hsv.Saturation) * whiteOut;
    hsv.Value = Math.Min(1.0, hsv.Value + whiteOut) * (1 - blackOut);

    return hsv.Color;
}

HSV 帮助程序类只是我在网上找到的将颜色映射到 HSV 空间的代码,我认为这对于这个问题的答案并不重要,但如果是的话,我会很乐意添加对它的引用。

4

0 回答 0