Hi Leute.
Ich habe mir bereits dieses Thema hier durchgelesen und den Code von Hulk mitlerweile im Prinzip 1:1 übernommen...
[Anfänger] Graphics in Bitmap konvertieren
Trotzdem bekomme ich kein Ergebniss.
Hier mal mein Code:
Bitmap bmpMap = new Bitmap(pictureBox1.Width, pictureBox1.Height);
Image imgMap = Image.FromHbitmap(bmpMap.GetHbitmap(Color.Black));
Graphics grcMap = Graphics.FromImage(imgMap);
// [...] diverse Zeichenoperationen in grcMap
grcMap.Save();
imgMap.Save("c:\\mapy.bmp");
pictureBox1.Image = imgMap;
OK, das am Ende kommt schon durchs expirimentieren, aber: ich bekomme rein gar nix (bzw. ein schwarzes Bild) als Ergebniss. Es wurde aber 100%ig etwas gezeichnet und ich habe mitlerweile keine Idee mehr was ich falsch gemacht haben könnte.
Visit me @ www.beremote.net
Ich Denke, dass das das Problem ist:
// Bitmap erbt von Image, also ist ein Bitmap automatisch immer ein Image.
Bitmap bmpMap = new Bitmap(pictureBox1.Width, pictureBox1.Height);
// das hier ist also unnötig
// Außerdem erstellst du ein komplett schwarzes Bild mit bmpMap.GetHbitmap(Color.Black)!
//Image imgMap = Image.FromHbitmap(bmpMap.GetHbitmap(Color.Black));
// Hier kannst du direkt bmpMap übergeben.
Graphics grcMap = Graphics.FromImage(/*imgMap*/bmpMap);
Gruß, Christian.
Das ändert, außer dass die Ausgabe jetzt transparent ist, nichts.
Ich habe also statt dem schwarzen bild, jetzt ein transparentes (oder was acuh immer das von den Daten hier ist - jedenfalls den default-wert eines Bitmaps).
Sowohl die Datei, als auch die picBox zeigen das gleiche an.
Visit me @ www.beremote.net
Also das geht bei mir:
Bitmap bmp = new Bitmap(100, 100);
Graphics g = Graphics.FromImage(bmp);
g.DrawString("HALLO", new Font("Arial", 12), Brushes.Yellow, new PointF(10, 10));
g.Save();
bmp.Save("c:\\bild.bmp");
g.Dispose();
und dein Code funktioniert auch wunderbar:
Bitmap bmpMap = new Bitmap(pictureBox1.Width, pictureBox1.Height);
//Image imgMap = Image.FromHbitmap(bmpMap.GetHbitmap(Color.Black));
Graphics grcMap = Graphics.FromImage(bmpMap);
// [...] diverse Zeichenoperationen in grcMap
grcMap.DrawString("Hallo", new Font("Arial", 14), Brushes.Red, new PointF(10, 10));
grcMap.Save();
bmpMap.Save("c:\\mapy.bmp");
pictureBox1.Image = bmpMap;
PS: habe nur die zeile mit dem Image auskommentiert, und eben einen String gezeichnet, sonst ist es direklt Copy & Paste von hier
kann das was damit zutun haben, dass das Projekt ein Control ist?
Hier mal der komplette Code:
[...]
Edit:
Fehler gefunden. Hab einfach nur falsche Werte berechnet...
An sich war alles so wie es soll, nur wurde es weit auserhalb der eigentlichen Bitmap gezeichnet 😉
Danke für eure Hilfe.
Visit me @ www.beremote.net