2010-05-24 2 views

ответ

56

Вам необходимо использовать кодировщик (подкласс 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); 
    } 
} 

Кстати, обратите внимание, что есть a bug in Clipboard.GetImage. Это не должно быть проблемой, если вы просто сохраните изображение в файле, но это будет, если вы хотите его отобразить.


EDIT: ошибка, упомянутый выше, кажется, фиксируется в 4.0

+0

Это не компилируется на моей машине. Параметры BitmapFrame.Create - это URI или поток, а не изображение: \ –

+0

@IgnacioSolerGarcia. Этот метод существует в WPF: https://msdn.microsoft.com/en-us/library/ms615993(v=vs.110).aspx. Какое приложение вы делаете? –

+0

Вы правы, извините. Я сделал быстрое доказательство концепции приложения с WinForms. –

Смежные вопросы