Laden...

Problem mit Bitmap & Graphics

Erstellt von Hunv vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.443 Views
Hunv Themenstarter:in
193 Beiträge seit 2005
vor 16 Jahren
Problem mit Bitmap & Graphics

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

795 Beiträge seit 2006
vor 16 Jahren

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.

`There are 10 types of people in the world: Those, who think they understand the binary system Those who don't even have heard about it And those who understand "Every base is base 10"`
Hunv Themenstarter:in
193 Beiträge seit 2005
vor 16 Jahren

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

S
902 Beiträge seit 2007
vor 16 Jahren

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();

S
902 Beiträge seit 2007
vor 16 Jahren

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

Hunv Themenstarter:in
193 Beiträge seit 2005
vor 16 Jahren

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