Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Salvare disegno picturebox senza colore di sfondo
Forum - C# / VB.NET - Salvare disegno picturebox senza colore di sfondo

Avatar
cristian3095 (Normal User)
Pro


Messaggi: 66
Iscritto: 24/09/2010

Segnala al moderatore
Postato alle 13:59
Giovedì, 30/08/2012
Salve a tutti, ho una picturebox con backcolor rosso e il trasparencekey della form è anche lui messo su rosso, su questa picturebox riesco a disegnarci delle linee, ma dopo averne disegnata una, se provo a disegnarne un'altra scompare quella precedente perchè ho utilizzato le coordinate di origine e quelle di fine e ovviamente si sovrascrivono. Ho pensato che per fare delle nuove linee, potevo salvare il contenuto della picturebox in una bitmap e poi la impostavo come background della picturebox così che quella linea non andava più via e potevo disegnarne altre. Il problema è che nel form c'è una trackbar per regolare l'opacità e se provo a salvare l'immagine me la salva con il rosso chiaro come sfondo e ovviamente non essendo RGB 255,0,0 non rientra nella trasparence key e quindi la picturebox non è più trasparente... come posso fare per salvare solo quello che disegno lasciando perdere il colore di sfondo?
io ho salvato con "drawtobitmap" e la picturebox viene disegnata tramite l'evento Paint con e.graphics.ecc....
spero che potete aiutarmi.
Grazie in anticipo :)

Ultima modifica effettuata da cristian3095 il 30/08/2012 alle 14:01
PM Quote
Avatar
Uno sciame di API (Member)
Pro


Messaggi: 66
Iscritto: 10/07/2012

Segnala al moderatore
Postato alle 11:45
Venerdì, 07/09/2012
Se l'immagine la devi salvare come file, prova così:
Codice sorgente - presumibilmente VB.NET

  1. If My.Computer.FileSystem.FileExists("Percorso") = True Then
  2.         PictureBox1.ImageLocation = "Percorso"
  3.         End If
  4.         Dim g As Graphics = Graphics.FromImage(PictureBox1.Image)
  5.         g.DrawImage(bmp, New Rectangle(New Point(Rnd() * 100, Rnd() * 100), bmp.Size))
  6.         PictureBox1.Refresh()
  7.         PictureBox1.Image.Save(Percorso)



Se devi invece salvarla in una variabile, prova così:
Codice sorgente - presumibilmente VB.NET

  1. If Not bg Is Nothing Then
  2.         PictureBox1.Image = bg
  3.         End If
  4.         Dim g As Graphics = Graphics.FromImage(PictureBox1.Image)
  5.         g.DrawImage(bmp, New Rectangle(New Point(Rnd() * 100, Rnd() * 100), bmp.Size))
  6.         PictureBox1.Refresh()
  7.         bg = PictureBox1.Image



P.S. Questo esempio posiziona l'immagine bmp a coordinate casuali, ma visto che tu devi disegnare delle linee,invece di usare g.DrawImage() , userai il codice scritto da te per disegnare le linee. :)

Ultima modifica effettuata da Uno sciame di API il 07/09/2012 alle 11:48
PM Quote