Panel als Bild Speichern

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von flexy1994.

    Panel als Bild Speichern

    Hi
    Ich habe ein kleines Problem mit dem speichern eines Panels als Bild
    Ich zeige euch einfach mal was ich meine.

    Ich will das Dunkelgraue Panel von diesem Form als Bild speichern (Dateianhang Nr 1)
    Doch es fehlt ein Stück des Panels und man sieht den Fensterrahmen (Dateianhang Nr 2)

    Mein Code:

    VB.NET-Quellcode

    1. Dim Pic As New Bitmap(Panel1.Width, Panel1.Height)
    2. Dim rec As New Rectangle(0, 0, Panel1.Width, Panel1.Height)
    3. DrawToBitmap(Pic, rec)
    4. Pic.Save("C:\test.png", Drawing.Imaging.ImageFormat.Png)
    5. Pic.Dispose()


    Nur jetzt steh ich auf dem Schlauch und habe keine Ahnung was daran falsch ist.
    Ich hoffe weiß ihr könnt mir helfen mein Problem zu lösen

    /Update neue Bilder hinzugefügt auf denen man sieht was ich meine

    Mfg
    Gigalix
    Bilder
    • Fenster.PNG

      45,08 kB, 849×649, 295 mal angesehen
    • test.png

      14,82 kB, 829×610, 259 mal angesehen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Gigalix“ ()

    Es geht nicht drum, das Hintergrundbild des Panels zu speichern, sondern den Bereich des Panels..
    Ich habe es falsch Beschrieben...auf dem Panel sind später noch Pictureboxen und die sollen mitgespeichert werden

    Ich hab jetzt den ersten Post editiert.
    Auf den neuen Bildern kann man es sehen
    Achso dann mach es so:

    VB.NET-Quellcode

    1. Dim bmp As New Bitmap(Panel1.Width, Panel1.Height)
    2. Using fs As Graphics = Graphics.FromImage(bmp)
    3. fs.CopyFromScreen(Panel1.Location.X,Panel.Location.Y, 0,0,bmp.Size)
    4. End Using
    5. bmp.Save("C:\test.png", Drawing.Imaging.ImageFormat.Png)


    mfg Tim;)

    Gigalix schrieb:

    Funktioniert auch nicht, jetzt speichert es den gesamten Bildschirm bis zum Punkt an dem das Panel aufhört.
    So schwer kann das doch nicht sein O.o

    dann änders mal selbst, du musst nur die Location und vllt. das Size ändern-.-

    mfg Tim;)
    Hallo

    hab grad das gleiche gebraucht...
    falls es noch nicht funktioniert hier mein code


    VB.NET-Quellcode

    1. Dim bmp As New Bitmap(Panel1.Width, Panel1.Height)
    2. Using fs As Graphics = Graphics.FromImage(bmp)
    3. fs.CopyFromScreen(Me.Location.X + Panel1.Location.X, Me.Location.Y + Panel1.Location.Y, 0,0,bmp.Size)
    4. End Using
    5. bmp.Save("C:\test.png", Drawing.Imaging.ImageFormat.Png)


    zuvor wurde die Position des Panels in der Form als Position für der Screenshot genommen!
    Daher wurde die pos. vom Oberen Linken Bildschirmrand gemessen.

    trotzdem danke für den fast fertigen code. :thumbsup:

    M.f.G.: Flexy1994