Oppure

Loading
30/08/12 11:59
cristian3095
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 30/08/12 12:01
aaa
07/09/12 9:45
Uno sciame di API
Se l'immagine la devi salvare come file, prova così:
If My.Computer.FileSystem.FileExists("Percorso") = True Then
        PictureBox1.ImageLocation = "Percorso"
        End If
        Dim g As Graphics = Graphics.FromImage(PictureBox1.Image)
        g.DrawImage(bmp, New Rectangle(New Point(Rnd() * 100, Rnd() * 100), bmp.Size))
        PictureBox1.Refresh()
        PictureBox1.Image.Save(Percorso)


Se devi invece salvarla in una variabile, prova così:
If Not bg Is Nothing Then
        PictureBox1.Image = bg
        End If
        Dim g As Graphics = Graphics.FromImage(PictureBox1.Image)
        g.DrawImage(bmp, New Rectangle(New Point(Rnd() * 100, Rnd() * 100), bmp.Size))
        PictureBox1.Refresh()
        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 07/09/12 9:48
aaa