使用ColorMatrix重新着色System.Drawing.Image

时间:2012-01-28 19:47:09

标签: c# c#-4.0

我正在尝试开发一个具有此签名的简单图像调整扩展方法:

static Alter(this System.Drawing.Image, Color original, Color result);

我想用当前图像的颜色播种算法,然后我想将其转换为result颜色。因此,如果我传入img.Alter(紫色,黄色),整个图像将偏向黄色。我大部分时间都在工作,并且可以进行静态转换,例如灰度和反转,但是动态的改变让我感到难过。

我的主要问题是如何确定颜色的“差异”,然后将其应用于ColorMatrix的RGB格式。我有一个HueSaturationBrightness转换器,所以我可能会使用传入颜色的GetHue(),GetSaturation()和GetBrightness()值进行一些数学计算。

我正在尝试使用ColorMatrix的40,41和42索引将组件添加到原始图像/颜色的红色,绿色和蓝色组件中。我似乎无法做到这一点。

使用HSB确定2张图像的RGB百分比差异的最佳方法是什么。

0 个答案:

没有答案