如何将WPF图像保存到文件

tbi*_*hel 30 wpf bitmapsource

在WPF中,该System.Windows.Clipboard.getImage()函数返回一个BitmapSource对象.作为一个来自WinForms背景的WPF新手,我不清楚如何将这个图像保存到文件中.我必须采取哪些步骤?

Tho*_*que 63

您需要使用编码器(子类BitmapEncoder).例如,要将其保存为PNG格式,您可以执行以下操作:

public static void SaveClipboardImageToFile(string filePath)
{
    var image = Clipboard.GetImage();
    using (var fileStream = new FileStream(filePath, FileMode.Create))
    {
        BitmapEncoder encoder = new PngBitmapEncoder();
        encoder.Frames.Add(BitmapFrame.Create(image));
        encoder.Save(fileStream);
    }
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,请注意有一个错误Clipboard.GetImage.如果您只是将图像保存到文件中应该不会有问题,但是如果要显示它则会出现问题.


编辑:上面提到的错误似乎在4.0中修复