我使用下面的代码在颜色上实现了白光/黑光(照明设计器功能)。而不是遍历位图中的颜色,我想使用 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 空间的代码,我认为这对于这个问题的答案并不重要,但如果是的话,我会很乐意添加对它的引用。