В WPF функция System.Windows.Clipboard.getImage()
возвращает BitmapSource
. Как новичок в WPF, исходящий из фона WinForms, мне не ясно, как сохранить это изображение в файле. Какие шаги я должен предпринять?
Как сохранить изображение WPF BitmapSource в файл?
Ответ 1
Вам нужно использовать кодировщик (подкласс 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