Differenze tra le versioni di "Disegnare in una DrawingArea due immagini sovrapposte anche consentendo il cambio di opacità di quella disegnata sopra"

Da Gambas-it.org - Wikipedia.
(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...")
 
Riga 2: Riga 2:
  
 
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.
 
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.
 
Mostriamo un semplice esempio pratico, nel quale il livello di opacità dell'immagine sovrastante potrà essere cambiato mediante la rotazione della rotellina del mouse.
Riga 10: Riga 9:
 
   
 
   
 
   
 
   
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
    
 
    
  <FONT Color=gray>' ''Usiamo questa volta la Classe "Image in modo "Statico" per caricare le due immagini da sovrapporre nella "DrawingArea":''</font>
+
  <FONT Color=gray>' ''Usa questa volta la Classe "Image in modo "Statico" per caricare le due immagini da sovrapporre nella "DrawingArea":''</font>
 
   im1 = Image.Load("<FONT Color=gray>''/percorso/della/prima/immagine''</font>")
 
   im1 = Image.Load("<FONT Color=gray>''/percorso/della/prima/immagine''</font>")
 
   im2 = Image.Load("<FONT Color=gray>''/percorso/della/seconda/immagine''</font>")
 
   im2 = Image.Load("<FONT Color=gray>''/percorso/della/seconda/immagine''</font>")
 
    
 
    
  '''End'''
+
  End
 
   
 
   
  '''Public''' Sub DrawingArea1_Draw()
+
   
 +
Public Sub DrawingArea1_Draw()
 
    
 
    
  <FONT Color=gray>' ''Disegnamo entrambe le immagini su un'unica "DrawingArea":''</font>
+
  <FONT Color=gray>' ''Disegna entrambe le immagini su un'unica "DrawingArea":''</font>
 
   With Paint
 
   With Paint
 
     <FONT Color=#B22222>.DrawImage</font>(im1, 100, 100, im1.W, im1.H, 1.00)
 
     <FONT Color=#B22222>.DrawImage</font>(im1, 100, 100, im1.W, im1.H, 1.00)
  <FONT Color=gray>' ''Passiamo una variabile per modificare il livello di opacità dell'immagine "im2" sovrapposta a quella "im1":''</font>
+
  <FONT Color=gray>' ''Passa una variabile per modificare il livello di opacità dell'immagine "im2" sovrapposta a quella "im1":''</font>
 
     <FONT Color=#B22222>.DrawImage</font>(im2, 100, 100, im2.W, im2.H, <FONT Color=#B22222>'''f'''</font>)
 
     <FONT Color=#B22222>.DrawImage</font>(im2, 100, 100, im2.W, im2.H, <FONT Color=#B22222>'''f'''</font>)
 
     .End
 
     .End
 
   End With
 
   End With
 
    
 
    
  '''End'''
+
  End
 
   
 
   
 
   
 
   
  <FONT Color=gray>' ''Modifichiamo il livello di opacità della seconda immagine mediante la rotazione della rotellina del mouse:''</font>
+
  <FONT Color=gray>' ''Modifica il livello di opacità della seconda immagine mediante la rotazione della rotellina del mouse:''</font>
  '''Public''' Sub DrawingArea1_MouseWheel()
+
  Public Sub DrawingArea1_MouseWheel()
 
    
 
    
 
   Select Case Mouse.Delta
 
   Select Case Mouse.Delta
Riga 43: Riga 43:
 
   End Select
 
   End Select
 
    
 
    
  <FONT Color=gray>' ''Consentiamo alla "DrawingArea" di ridisegnare le due immagini con il nuovo livello di opacità dell'immagine sovrapposta:''</font>
+
  <FONT Color=gray>' ''Consente alla "DrawingArea" di ridisegnare le due immagini con il nuovo livello di opacità dell'immagine sovrapposta:''</font>
 
   DrawingArea1.Refresh
 
   DrawingArea1.Refresh
 
    
 
    
  '''End'''
+
  End

Versione delle 10:37, 27 giu 2024

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()
 
' Usa 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()
 
' Disegna entrambe le immagini su un'unica "DrawingArea":
 With Paint
   .DrawImage(im1, 100, 100, im1.W, im1.H, 1.00)
' Passa 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


' Modifica 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
 
' Consente alla "DrawingArea" di ridisegnare le due immagini con il nuovo livello di opacità dell'immagine sovrapposta:
 DrawingArea1.Refresh
  
End