Speichern einer WPF-canvas als Bild
War ich nach diese Artikel, und ich habe meine Leinwand, um gerettet zu werden, allerdings möchte ich erweitern der code-Funktionalität und speichern einen bestimmten Teil meiner Leinwand als Bild, anstatt meine ganze Leinwand.
Ich habe versucht, die rect.Offset
und rect.Location
Eigenschaften, aber das Bild wird immer gespeichert, von der oberen linken Ecke von meiner Leinwand.
Weiß jemand, wie kann ich erreichen wollte meine Funktionen in einer ähnlichen Art und Weise?
Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine einfache Methode wäre die Verwendung einer
CroppedBitmap
nach dem Rendern die gesamte Leinwand. Sie könnte die Wiederverwendung der gleichenRenderTargetBitmap
, wenn Sie mehrere Bilder.Wenn Sie sparen wollen, um ein bitmap-Objekt anstelle einer Datei, die Sie verwenden können:
using System.Windows.Media.Imaging;
Ich weiß, das ist eine alte Frage, aber es dauerte eine Weile, des Suchens und versuchen, verschiedene Antworten zu kommen mit etwas, das arbeitet zuverlässig gut. So sparen einige Zeit für diejenigen, die in der Zukunft, hier ist ein kleiner service, entweder speichern Sie eine Leinwand in eine Datei oder senden eine Bildquelle für die Anzeige an anderer Stelle in Ihrer Anwendung.
Sollte es robuster werden, für eine Produktion, Anwendung, zusätzliche null-und Fehlerprüfung, etc..
Und ein Beispiel WPF-Anwendung demonstrieren zu verwenden.
MainWindow.xaml
Und der code-behind machen die Anrufe in der service.
Blick auf den link, den Sie gepostet haben, offensichtlich können Sie die gerenderten Zielkoordinaten hier.
Sehen, ob diese Lösung funktioniert für Sie.