Grafikobjekt zur Bilddatei

8

Ich möchte mein Bild zuschneiden und skalieren. Hier ist mein Code:

%Vor%

Nun gehe ich davon aus, dass mein resultierendes beschnittenes / skaliertes Bild im Grafik Objekt gespeichert wird. Die Frage ist - wie speichere ich es in einer Datei?

    
niaher 18.07.2009, 10:04
quelle

3 Antworten

10

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.

%Vor%

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.

    
Fredrik Mörk 18.07.2009, 10:07
quelle
5

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:

%Vor%     
Guffa 18.07.2009 11:02
quelle
1

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%     
user1830791 24.01.2018 11:22
quelle

Tags und Links