gpt4 book ai didi

.net - 如何在.NET中使用ColorMatrix改变亮度、颜色、饱和度、色调

转载 作者:行者123 更新时间:2023-12-02 09:37:11 28 4
gpt4 key购买 nike

我有一个“位图”类型,其中包含一些随机位图数据。我已经编写了自己的亮度、颜色、饱和度和色调调整,这些调整分别作用于每个位,毫不奇怪,速度非常慢。

在我的研究中,我注意到使用矩阵可以非常快地调整这些。此外,.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

但我无法找到合适的范围或这些数字的实际用途。我不知道如何调整亮度、颜色、饱和度和色调。

有什么帮助吗?我是否在某个地方缺少一些好的文档?

谢谢!!

最佳答案

有一些详细信息,请访问 http://www.graficaobscura.com/matrix/index.html但您可能想发布您的其他代码。按像素进行操作非常常见,通常不会遇到此类操作的性能问题。 .NET 的 Bitmap.SetPixel 是出了名的慢。有个好的C# image processing series在 codeproject 中展示了一种更快的方法。我没有 c++-cli 的经验,但我会看一下。

关于.net - 如何在.NET中使用ColorMatrix改变亮度、颜色、饱和度、色调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4888503/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com