我有一个包含一些随机位图数据的“位图”类型。我已经针对亮度,颜色,饱和度和色调自己编写了自己的调整,这些调整分别针对每一位进行,而且毫不奇怪,这种调整非常缓慢。如何在.NET中使用ColorMatrix来更改亮度,颜色,饱和度,色调
在我的研究中,我发现使用矩阵可以非常快地调整这些。另外,.NET有一个ColorMatrix,你可以在DrawImage()中应用矩阵效果。
我们建立如下所示(从MSDN网站)的矩阵:
float[][] colorMatrixElements = {
new float[] {2, 0, 0, 0, 0}, // red scaling factor of 2
new float[] {0, 1, 0, 0, 0}, // green scaling factor of 1
new float[] {0, 0, 1, 0, 0}, // blue scaling factor of 1
new float[] {0, 0, 0, 1, 0}, // alpha scaling factor of 1
new float[] {.2f, .2f, .2f, 0, 1}}; // three translations of 0.2
但我一直没能找到合适的范围或究竟这些数字的任何实际做。我不知道如何调整亮度,颜色,饱和度和色调。
任何帮助?我在某处丢失了一些很好的文档吗?
谢谢!
最后一行是'亮度'。目前,我只是将它全部设置为亮度。 (范围0-> 1) – DanTheMan 2011-02-03 17:12:16