WPFでは、 System.Windows.Clipboard.getImage()
関数は BitmapSource
オブジェクトを返します。 WinFormsの背景から来たWPFの初心者なので、この画像をファイルに保存する方法はわかりません。私が取らなければならないステップは何ですか?
エンコーダを使用する必要があります( 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
のバグ があることに注意してください。画像をファイルに保存するだけなら問題はありませんが、表示したい場合は問題になります。
編集:上記のバグは4.0で修正されているようです