如何将BitmapImage从内存保存到WPF C#中的文件中?

时间:2016-03-04 19:20:49

标签: c# wpf save bitmapimage

我找不到任何东西,需要一些帮助。我已经将一堆图像作为BitmapImage类型加载到内存中,这样我就可以删除它们存储的临时目录。我已经成功完成了这一部分。现在我需要将图像保存到不同的临时位置,我无法弄清楚如何执行此操作图像包含在:

Dictionary<string, BitmapImage>

字符串是文件名。如何将此集合保存到新的临时位置?谢谢你的帮助!

1 个答案:

答案 0 :(得分:19)

您需要使用编码器来保存图像。 PngBitmapEncoder将处理大多数常见图像类型(PNG,BMP,TIFF等)。以下将拍摄图像并保存:

BitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(image));

using (var fileStream = new System.IO.FileStream(filePath, System.IO.FileMode.Create))
{
    encoder.Save(fileStream);
}

我通常会将其写入扩展方法,因为它是图像处理/操作应用程序的常用功能,例如:

public static void Save(this BitmapImage image, string filePath)
{
    BitmapEncoder encoder = new PngBitmapEncoder();
    encoder.Frames.Add(BitmapFrame.Create(image));

    using (var fileStream = new System.IO.FileStream(filePath, System.IO.FileMode.Create))
    {
        encoder.Save(fileStream);
    }
}

这样你就可以从BitmapImage对象的实例中调用它。