我使用下面的代码在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空间的代码,我认为这对于这个问题的答案并不重要,但是如果它是我会很乐意添加对它的引用