Disegnare e salvare

giovedì 01 febbraio 2007 - 08.52

lordwaizard Profilo | Senior Member

Ho creato la seguente applicazione:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
pic.Image = Image.FromFile("c:\c.bmp")

Dim G As Graphics = pic.CreateGraphics
G.DrawEllipse(Pens.Blue, New Rectangle(0, 0, 100, 100))
G.Dispose()
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim G As Graphics = pic.CreateGraphics
G.DrawEllipse(Pens.Blue, New Rectangle(100, 100, 100, 100))
G.Dispose()

pic.Image.Save("c:\ciao.bmp")
End Sub

Tutto funziona correttamente salvo un particolare, che nell'immagine salvata, il cerchio, non si salva, l'unica cosa salvata è l'immagine caricata in precedenza. Dove sbaglio?
Grazie in anticipo
Davide

qwertyuiopearendil Profilo | Newbie

Questo è un esempio in c# scritto da me nel Tips&Tricks di un altro sito, spero ti sia ugualmente utile:

SolidBrush b=new SolidBrush(System.Drawing.Color.White);
Bitmap Bmp = new Bitmap(216,128);
Graphics Gr = Graphics.FromImage(Bmp);
Gr.FillRectangle(b,0,0,216,128);
Gr.DrawLine(Pens.Red, 0, 0,50,50);
pictureBox1.Image = Bmp;
pictureBox1.Image.Save("pippo.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);

Diamo ora qualche spiegazione:

1)L'oggetto su cui io disegno è un oggetto di Tipo PictureBox e si chiama come tutti potete vedere pictureBox1.

2)Creo un oggetto di tipo Bitmap di grandezza 216,128 pixel che poi sono le dimensioni della mia pictureBox1.

3)Creo un oggetto di tipo Graphics di nome Gr e lo assacio alla mia Bitmap: Graphics Gr = Graphics.FromImage(Bmp);

4)Disegno una line che unisce due punti con la funzione DrawLine(...) e prima disegno un bel rettangolo bianco, questo perchè quando salva la mia immagine mi metto lo sfondo nero perchè è un pezzo che non viene inizializzato.

5)Alla proprietà Image della mia pictureBox1 associo la mia Bitmap Bmp.

6)Salvo il tutto in un file di nome pippo.jpg con estensione Jpeg cioè jpg.

P.S. probabilmente il cerchio non lo salvava perchè avendolo disegnato e basta non era ancora un'immagine, nel caso fai una prova, prima di salvare prova a muovere la tua finestra facendo in modo che il cerchio da te disegnato venga in parte comperto dal bordo estremo del desktop, se poi riposzionandolo in modo che si veda tutto il tuo cerchio risulta essere mancante della parte che avevi "nascosto" dal bordo del desktop vuol dire che non è un'immagine.
Ciao e spero di esserti stato di aiuto.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5