Ottenere l'effetto della gomma per cancellare in una DrawingArea
Vai alla navigazione
Vai alla ricerca
Poste due immagini, anche di diversa dimensione, l'una sull'altra, l'effetto, che si vuol ottenere, è quello di far apparire lungo la parte, percorsa dal cursore del mouse, la porzione dell'immagine sottostante.
Mostriamo un possibile codice pratico:
Private im1 As Image
Private im2 As Image
Private punti As New Short[]
Public Sub Form_Open()
DrawingArea1.Cursor = New Cursor(Picture["icon:/16/pen"], 2, 13)
im1 = Image.Load("/percorso/del/primo/file/immagine") ' L'immagine di fondo
im2 = Image.Load("/percorso/del/secondo/file/immagine") ' L'immagine principale, da cancellare, che copre quella di fondo
Me.Resize(Max(im1.W, im2.W), Max(im1.H, im2.H))
DrawingArea1.Resize(Max(im1.W, im2.W), Max(im1.H, im2.H))
End
Public Sub DrawingArea1_Draw()
With Paint
.DrawImage(im1, 0, 0, im1.W, im1.H, 1.0, Null)
.DrawImage(im2, 0, 0, im2.W, im2.H, 0.9, Null)
For i As Integer = 0 To punti.Max Step 2
.Brush = .Image(im1)
.Arc(punti[i], punti[i + 1], 16, Rad(0), Rad(360), False)
.Fill
Next
.End
End With
End
Public Sub DrawingArea1_MouseMove()
With punti
.Push(Mouse.X)
.Push(Mouse.Y)
End With
DrawingArea1.Refresh()
End
Public Sub DrawingArea1_MouseUp()
With punti
.Push(Mouse.StartX)
.Push(Mouse.StartY)
End With
DrawingArea1.Refresh()
End
Ottenere con la cancellazione l'effetto di un unico colore
Se si vuole ottenere l'effetto di un unico colore durante la cancellazione dell'immagine principale, si potrà impostare - come immagine sottostante - un'immagine costituita da un unico colore.
Riprendendo il precedente esempio, sarà sufficiente impostare la seguente modifica, ad esempio per ottenere un effetto bianco con la cancellazione:
im2 = Image.Load("/percorso/del/file/immagine") ' L'immagine principale, da cancellare, che copre quella di fondo
im1 = New Image(im2.W, im2.H, Color.White, Image.Standard) ' L'immagine di fondo che darà il colore unico come effetto "cancellazione"