Das Objekt Graphics
, das Sie von Graphics.FromImage
erhalten, ist eine Zeichenfläche für das Bild. Sie können das Bildobjekt einfach speichern, wenn Sie fertig sind.
Seien Sie jedoch vorsichtig, wenn Sie dies wiederholt auf einem JPG-Bild tun, ist das vielleicht keine gute Sache. Das Bild wird jedes Mal neu codiert, und da jpg eine destruktive Komprimierungsmethode verwendet, geht jedes Mal die Bildqualität verloren. Ich würde mir darüber keine Gedanken machen, wenn es sich um eine Operation einmal pro Bild handelt.
Nein, das Graphics
-Objekt enthält keine Bilddaten, es wird zum Zeichnen auf einer Zeichenfläche verwendet, die normalerweise der Bildschirm oder ein Bitmap
-Objekt ist.
Sie müssen also ein Objekt Bitmap
mit der richtigen Größe zum Zeichnen erstellen und das Objekt Graphics
für diese Bitmap erstellen. Dann können Sie es speichern. Denken Sie daran, dass das Objekt, das IDisposable
implementiert, entsorgt werden soll, zum Beispiel mit der using
-Klausel:
Dies ist keine direkte Antwort auf die Frage des OP, aber es ist ein oft übersehenes Werkzeug, das Ihnen erlauben kann, die Dinge anders anzugehen, sollte sich dies als notwendig erweisen.
Es wird oft gesagt, dass es nicht möglich ist, auf den Inhalt eines Graphics-Objekts zuzugreifen. Das ist überhaupt nicht wahr. Mit der richtigen Vorgehensweise können Sie auf Daten auf einer Arbeitsfläche mit HDC und BitBlt zugreifen. Hier ist eine Möglichkeit, dies mit C # zu tun:
%Vor%Tags und Links c# asp.net system.drawing