[.NET] C# Grafik Speichern

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von BarBapapA, 23. September 2008 .

Schlagworte:
  1. 23. September 2008
    C# Grafik Speichern

    Moin Moin
    Ich habe ein Programm geschrieben mit dem ich zeichnen kann. Dafür benutze ich eine PictureBox und die methode creategraphics.
    Nun möchte ich das was ich gezeichnet habe als .bmp oder ähnliches speichern ich weiß nur nich wie -.-
    Kann mir da jemand helfen?

    Kleines Beispiel was ich mache:

    ...
    Graphics = pictureBox1.CreateGraphics();
    g.DrawEllipse(...);
    ...
     
  2. 23. September 2008
    AW: C# Grafik Speichern

    Wenn der Inhalt wirklich in der Picturebox abgelegt ist, dann hilft folgendes:

    Code:
    picturebox.Image.Save( ... );
    
    Davon gibt es mehrere "Exemplare":

    Code:
    public void Save(string filename);
    public void Save(Stream stream, ImageFormat format);
    ...
    
    Hilft das? Wenn nicht, dann poste doch bitte mal deinen Code (so wie du das ganze zeichnest).


    - - -
     
  3. 23. September 2008
    AW: C# Grafik Speichern

    Das oben ist quasi schon alles wie ich zeichne.
    Ich lege nen Objekt an und dieses Objekt hat methoden zum zeichen wie z.B: drawline.

    Das Problem ist ich weiß nicht wo er die grafik abspeichert.
    Es erscheint auf/in/über der PictureBox...

    PictureBox1.Image.save(...) speichert das bild ab welches vorher rein geladen wurde und nicht das was ich gezeichnet habe.
     
  4. 23. September 2008
    AW: C# Grafik Speichern

    Ändere den Ursprung deiner Graphics:

    Du lässt dir momentan von der PictureBox ein neues Graphics-Objekt (zum Zeichnen) erstellen. Nimm doch einfach das Graphics-Objekt von der PictureBox an sich.

    Dann sollte deine "Zeichnung" auch direkt auf den Daten der Picturebox landen, und du kannst es per Image.Save() speichern.

    Code:
    Graphics graphic = Graphics.FromImage(pictureBox1.Image);
    ....
    
    pictureBox1.Image.Save(...);
    
    // Um ein "neues" Image in die Textdatei zu laden (kein Bild), 
    // kannst du folgenden Code verwenden:
    pictureBox1.Image = new Bitmap(
     pictureBox1.Width, 
     pictureBox1.Height, 
     System.Drawing.Imaging.PixelFormat.Format24bppRgb);
    
    Hilft das?
    -----------

    Des Weiteren meine Testumgebung (im Spoiler)
    Spoiler
    Hier ein (fast) Minimalbeispiel, so wie ich es getestet habe. Auf dein Formular musst du eine Picturebox eingefügt haben.

    Code:
    public Form1()
     {
     InitializeComponent();
    
     pictureBox1.Image = new Bitmap(pictureBox1.Width, pictureBox1.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
     Graphics graphic = Graphics.FromImage(pictureBox1.Image);
     graphic.DrawLine(new Pen(Color.White, 1f), 0, 0, 10, 10);
     }
    
     private void pictureBox1_Click(object sender, EventArgs e)
     {
     pictureBox1.Image.Save("c:\\tmp.jpg", System.Drawing.Imaging.ImageFormat.Bmp);
     }
    
     
  5. 25. September 2008
    AW: C# Grafik Speichern

    Danke!

    Jetzt funktionierts!

    ich zeichne jetzt halt nicht mehr mit nem graphics objekt sondern direkt mit den graphics methoden in eine methode

    Ist noch bisl anders als dein vorschlag.

    Bitmap bmp = new Bitmap(...);
    Graphics.FromImage(bmp).DrawEllipse(...);
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.