.net – 关于ColorMatrix的任何解释性文档的良好来源?

我想尝试使用ColorMatrix,但我只能找到将图像转换为灰度的示例.即便如此,它们往往被呈现为一组“魔术数字”代码而没有任何解释.

有谁知道如何使用ColorMatrix的“教程”?例如,我有兴趣将灰度图像转换为彩色图像,其中白色==透明,黑色=纯色,中间有灰色像素. ColorMatrix能做到吗?

最佳答案
我不知道任何文档,但是当ColorMatrix将一个RGBAW值转换为另一个时,您可以设置矩阵以获取输入RGB值并将它们应用于输出Alpha值. (W仅用于使矩阵数学工作).

好的,我认为以下矩阵应该做你想要的:

[1.0  0.0  0.0  0.333  0.0]
[0.0  1.0  0.0  0.333  0.0]
[0.0  0.0  1.0  0.333  0.0]
[0.0  0.0  0.0  0.0    0.0]
[0.0  0.0  0.0  0.0    1.0]

这将使当前RGB值保持不变,然后将α设置为R / 3 G / 3 B / 3,即RGB值的平均值.将沿对角线的1.0值更改为0.0以完全删除RGB值.

如果你知道图像是灰度,其中R == G == B那么你可以用1.0替换0.333(重复)中的任何一个,并将另外两个设置为0.0

转载注明原文:.net – 关于ColorMatrix的任何解释性文档的良好来源? - 代码日志