Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [VB.net] Salvare immagine nel file

    Ciao a tutti
    Io creo con la graphics un immagine e la visualizzo in una picturebox, poi la salvo in un file usando il seguente codice, però nel file salvato non ottengo la figura creata ma tutto nero:

    codice:
    dim g as graphics
    g = pic.CreateGraphics()
    g.FillEllipse(col1, New Rectangle(c1.X, c1.Y, x, y))
    
    
    pic.Image = New Bitmap(400, 400, g)
    pic.Image.Save("C:\Users\amministratore\Desktop\pic.bmp")
    Come posso salvare il disegno creato?
    jabjoint

  2. #2
    La proprietà della PictureBox AutoRedraw deve essere true.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Sbagli completamente il metodo. In quel modo stai solo assegnando alla proprietà .Image della PictureBox una Bitmap vuota che di sua natura ha lo sfonfo nero. L'elisse che disegni col metodo .CreateGraphics non ha niente a che vedere con la proprietà .Image della PictureBox in quanto le due cose non sono correlate.

    Il codice corretto è il seguente:

    codice:
      Dim bmp As New Bitmap(PictureBox1.Width, PictureBox1.Height)
            Dim g As Graphics = Graphics.FromImage(bmp)
            g.Clear(Color.White)
            g.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
            g.FillEllipse(Brushes.Blue, New Rectangle(10, 10, 50, 50))
            bmp.Save("C:\myPic.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
            g.Dispose()
    dove coloro lo sfondo della Bipmap di bianco, applico l'AntiAlias per migliorare la scalettatura dell'ellisse.

    Sbagliare è umano, perseverare è diabolico.

  4. #4
    Grazie Pirelli72! Funziona perfettamente!
    jabjoint

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Prego.

    Sbagliare è umano, perseverare è diabolico.

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Per correttezza, per vedere anche la preview sulla PictureBox:

    codice:
      Dim bmp As New Bitmap(PictureBox1.Width, PictureBox1.Height)
            Dim g As Graphics = Graphics.FromImage(bmp)
            Dim g2 As Graphics = PictureBox1.CreateGraphics
            g.Clear(Color.White)
            g.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
            g.FillEllipse(Brushes.Blue, New Rectangle(10, 10, 50, 50))
            bmp.Save("C:\myPic.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
            g2.DrawImage(bmp, 0, 0)
            g.Dispose()
            g2.Dispose()
    Sbagliare è umano, perseverare è diabolico.

  7. #7
    Grazie, ho visto che si può anche fare:

    pic.image = bmp
    jabjoint

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.