Dans WPF, la fonction System.Windows.Clipboard.getImage()
renvoie un objet BitmapSource
. En tant que débutant dans WPF provenant d'un arrière-plan WinForms, ce n'est pas clair pour moi comment enregistrer cette image dans un fichier. Quelles sont les étapes à suivre?
Vous devez utiliser un encodeur (sous-classe de BitmapEncoder
). Par exemple, pour l'enregistrer au format PNG, vous faites quelque chose comme ça:
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);
}
}
Soit dit en passant, notez qu'il y a n bogue dans Clipboard.GetImage
. Cela ne devrait pas être un problème si vous enregistrez simplement l'image dans un fichier, mais ce sera le cas si vous souhaitez l'afficher.
EDIT: le bug mentionné ci-dessus semble être corrigé dans 4.0