将BitmapImage转换为灰度,并保持alpha通道

Ala*_*tts 5 .net c# wpf .net-3.5

我在将BitmapImage(WPF)转换为灰度时遇到了问题,同时保留了alpha通道.源图像是PNG.

这里的MSDN文章工作正常,但它删除了alpha通道.

有没有快速有效的方法将BitmapImage转换为灰度?

ber*_*hof 2

您应该看看使用矩阵进行图像转换。

特别是,本文介绍了如何使用ColorMatrix. (它是用 VB.NET 编写的,但应该很容易转换为 C#)。

我还没有测试过它是否适用于 Alpha 通道,但我想说它值得一试,而且它绝对是一种快速有效的修改位图的方法。

  • 我已经在 System.Drawing.Image 上使用了它,效果很好。除非您将 GDI 位图转换为 BitmapSource,否则不适合 WPF 图像。 (2认同)