c# - wp - 根据滑块值将图像转换为灰度

时间:2014-03-20 06:47:50

标签: c# image bitmap windows-phone grayscale

我尝试将图像从彩色转换为灰度,但灰度级取决于滑块级别。我在互联网上发现的大部分教程都是将它变成绝对灰度。谢谢你的回答,我非常感谢

1 个答案:

答案 0 :(得分:0)

您应该在全彩色图像和灰度版本之间使用一些插值,其系数由滑块的值决定。 例如,如果使用ColorMatrix转换为灰度,described here,则要获得部分灰色图像,则应应用插值矩阵。比如说,“slider = 0”是全彩色,“slider = 1”是灰度,然后定义要应用的矩阵:

<color_matrix_to_apply> = slider * <grayscale_matrix> + (1 - slider) * <identity_matrix>

由于ColorMatrix不提供文本操作,您应该为每个矩阵项“手动”实现此公式。

matrixToApply.Matrix00 = slider * grayscaleMatrix.Matrix00 + (1 - slider) * identityMatrix.Matrix00;
...
matrixToApply.Matrix44 = slider * grayscaleMatrix.Matrix44 + (1 - slider) * identityMatrix.Matrix44;