40

WPF では、System.Windows.Clipboard.getImage()関数はオブジェクトを返しBitmapSourceます。WinForms の背景を持つ WPF の初心者として、この画像をファイルに保存する方法がわかりません。どのような手順を踏む必要がありますか?

4

2 に答える 2

79

エンコーダ (のサブクラス) を使用する必要があります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);
    }
}

ところで、バグClipboard.GetImageがあることに注意してください。画像をファイルに保存するだけなら問題ないはずですが、表示したい場合は問題になります。


EDIT:上記のバグは4.0で修正されたようです

于 2010-05-24T21:47:35.590 に答える