Disegnare in una DrawingArea due immagini sovrapposte anche consentendo il cambio di opacità di quella disegnata sopra
Da Gambas-it.org - Wikipedia.
Versione del 17 mag 2020 alle 10:58 di Vuott (Discussione | contributi) (Creata pagina con "Per disegnare in una ''DrawingArea'' due o più immagini, che restino eventualmente gestibili in modo distinto anche successivamente, si usa il Metodo "''.DrawImage( )''" dell...")
Per disegnare in una DrawingArea due o più immagini, che restino eventualmente gestibili in modo distinto anche successivamente, si usa il Metodo ".DrawImage( )" della Classe "Paint" per ciascuna immagine.
Inoltre, avendo due immagini disegnate l'una sovrapposta all'altra, se si intende anche cambiare il livello di opacità dell'immagine che sta sopra, in modo che si intraveda l'immagine sottostante, bisognerà modificare l'apposito sesto parametro formale del predetto Metodo.
Mostriamo un semplice esempio pratico, nel quale il livello di opacità dell'immagine sovrastante potrà essere cambiato mediante la rotazione della rotellina del mouse.
Private im1 As Image Private im2 As Image Private f As Float Public Sub Form_Open() ' Usiamo questa volta la Classe "Image in modo "Statico" per caricare le due immagini da sovrapporre nella "DrawingArea": im1 = Image.Load("/percorso/della/prima/immagine") im2 = Image.Load("/percorso/della/seconda/immagine") End Public Sub DrawingArea1_Draw() ' Disegnamo entrambe le immagini su un'unica "DrawingArea": With Paint .DrawImage(im1, 100, 100, im1.W, im1.H, 1.00) ' Passiamo una variabile per modificare il livello di opacità dell'immagine "im2" sovrapposta a quella "im1": .DrawImage(im2, 100, 100, im2.W, im2.H, f) .End End With End ' Modifichiamo il livello di opacità della seconda immagine mediante la rotazione della rotellina del mouse: Public Sub DrawingArea1_MouseWheel() Select Case Mouse.Delta Case 1 f += 0.025 If f > 1.0 Then f = 1.00 Case -1 f -= 0.025 If f < 0.0 Then f = 0.0 End Select ' Consentiamo alla "DrawingArea" di ridisegnare le due immagini con il nuovo livello di opacità dell'immagine sovrapposta: DrawingArea1.Refresh End