Grafik in PictureBox / Panel Speichern

sitios_

Grünschnabel
Grafik aus PictureBox / Panel Speichern

hey leute,

ich zerbreche mir nun seit stunden den kopf an einer sache
die so schwer eigentlich nich sein kann, denke ich mal.

ich habe ein klasse von picturebox erben lassen
und in einer anderen klasse eine instanz davon angelegt
in der ich dann zeichnen kann.
das will ich nun als jpg oder bmp abspeichern.

leider funktioniert folgendes nicht:

pictureBox1.Image.Save("test.jpg", System.Drawings.Imaging.ImageFormat.Jpeg);

und er bricht beim versuch zu speichern (siehe zeile drüber) mit
folgender meldung ab:

System.NullReferenceException: Object reference not set to an instance of an object. at ......

wäre wirklich sehr dankbar, wenn mir jemand
helfen könnte :-/

ciao
 
Zuletzt bearbeitet:
Hallo.

Ein Konstruktor der Bitmap Klasse bietet dir die Möglichkeit die Größe des Bildes anzugeben. Dann hast du ein leeres Bild. Mittels einer statischen Methode der Graphics-Klasse (FromImage) kannst du dir einneues Graphics-Objekt erstellen um damit das Bild zu malen.

Auf diese Weise speichere ich immer Bilder die ich selber Zeichne.

Mfg,
Alex

p.s.
Bitte nicht durchgehend kleinschreiben. Laut Netiquette nicht erwünscht. In den roten Boxen beim Erstellen eines Beitrags kann man dies auch nachlesen.
 
Hey

sorry, stell mich grad irgendwie blöd an.
In das Bitmap kann ich nun zeichnen und es anschliessend
abspeichern. Aber das wird mir in meinem prog nicht angezeigt,
da ich das Bitmap sicher irgendwo adden/anmelden muss.

Wie kann ich das nun machen?

?
Danke im voraus!
gruß
 
Das erzeugte Bitmapobjekt kannst du sicher der Image-Eigenschaft der Picturebox zuweisen,
oder du holst dir ein Graphics-Objekt von der PictureBox und zeichnest das Bild nochmal.

Für solche Fälle könnte sich eine Zeichenmethode eignen bei der du ein Graphics Objekt als Parameter übergibt, und mit dem du dann Zeichnest.

Der Methode ists egal ob du auf einem Control, oder in ein Bitmap malst.

Code:
...
Bitmap bmp = new Bitmap(256,256);
Graphics gfx = Graphics.FromImage(bmp);
PaintPicture(gfx);
...
Graphics gfx = myPictureBox.CreateGraphics();
PaintPicture(gfx);
...
private PaintPicture(Graphics gfx)
{
    //...
}
 

Neue Beiträge

Zurück