将BitmapImage转换为Bitmap,反之亦然

我在C#中有BitmapImage。我需要对图像进行操作。例如灰度,在图像上添加文本等。

我在stackoverflow中找到了用于灰度的函数,该函数接受位图并返回位图。

所以我需要将BitmapImage转换为Bitmap,进行操作并转换回去。

我怎样才能做到这一点?这是最好的方法吗?


米脂
浏览 2500回答 3
3回答

catspeake

这是用于将位图转换为BitmapImage的扩展方法。    public static BitmapImage ToBitmapImage(this Bitmap bitmap)    {        using (var memory = new MemoryStream())        {            bitmap.Save(memory, ImageFormat.Png);            memory.Position = 0;            var bitmapImage = new BitmapImage();            bitmapImage.BeginInit();            bitmapImage.StreamSource = memory;            bitmapImage.CacheOption = BitmapCacheOption.OnLoad;            bitmapImage.EndInit();            bitmapImage.Freeze();            return bitmapImage;        }    }
打开App,查看更多内容
随时随地看视频慕课网APP