如何使用ImageAttributes中的ColorMatrix实现白色输出/黑屏功能

时间:2015-12-29 23:18:03

标签: c# system.drawing colormatrix system.drawing.imaging system.drawing.color

我使用下面的代码在Color上实现白色输出/黑屏(灯光设计师功能)。我想在ImageAttributes上使用ColorMatrix实现这一点,而不是迭代位图中的颜色。我完成了停电部分,基本上调整矩阵40-42在-1(完全停电)和0(没有停电)之间。 我也可以通过将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空间的代码,我认为这对于这个问题的答案并不重要,但是如果它是我会很乐意添加对它的引用

0 个答案:

没有答案