Aus einer Grafik ein Image erstellen



  • Juhu!

    Kann ich aus einer Grafik eine Image-Datei erzeugen?

    Gruss Gandi



  • Hallo Gandi !

    Was für eine Grafik soll das sein?

    Gruß MacReeg



  • Hallo Gandi !

    Eine Möglichkeit wäre, neben einer Form noch eine Bitmap zum Zeichnen des Graphen zu benutzen. Das würde ungefähr so aussehen ...

    public class Form1 : System.Windows.Forms.Form
        {
            private Bitmap bmp;                 // zu abspeichernde Bitmap deklarieren
    
            public Form1()
            {
                InitializeComponent();
    
                bmp = new Bitmap(300,300);      // Bitmap-Objekt erstellen und Größe festlegen
            }
    
            ... u.s.w.
        }
    

    In der OnPaint()-Methode würden dann nicht nur die Form zum Zeichnen bedient, sondern auch die Bitmap ...

    private void Form1_Paint(object sender, PaintEventArgs e)
            {
                Graphics gfxform = e.Graphics;                              // Graphics-Objekt aus der aktiven Form erstellen
                Graphics gfxbmp  = Graphics.FromImage(bmp);                 // Graphics-Objekt aus der vordefinierten Bitmap
    
                gfxform.DrawEllipse(new Pen(Color.Red),50,50,200,100);      // Ellipse in die Form zeichnen
                gfxform.DrawLine(new Pen(Color.Green),0,0,300,200);         // Linie in die Form zeichnen
    
                gfxbmp.DrawEllipse(new Pen(Color.Red),50,50,200,100);       // Ellipse in die Bitmap zeichnen
                gfxbmp.DrawLine(new Pen(Color.Green),0,0,300,200);          // Linie in die bitmap zeichnen
            }
    
            private void button1_Click(object sender, System.EventArgs e)
            {
                bmp.Save("GfxSave.gif", ImageFormat.Gif);                   // Bitmap als GIF abspeichern
            }
    

    Auf Button-Click wird dann die Bitmap auf den datenträger gespeichert. Nachteil des Ganzen ist, dass das Zeichnen des Graphen doppelt (für die Form und für die Bitmap) ausgeführt werden muss. Vielleicht gibt es noch eine etwas elegantere Methode !?

    Für ImageFormat.Gif in der button1_Click()-Methode musst Du den namespace System.Drawing.Imaging einbinden.

    Gruß MacReeg

    [ Dieser Beitrag wurde am 31.10.2002 um 15:32 Uhr von MacReeg editiert. ]



  • Juhu!

    Danke! Das war schon mal super!!!
    Das einzige Problem ist nur noch, wenn ich die Grafik speicher, ist der Hintergrund beim dem Bitmap schwarz. Wie kann ich das ändern?

    MfG
    Gandi


Anmelden zum Antworten