Differenze tra le versioni di "Fondere due immagini in una sola"

Da Gambas-it.org - Wikipedia.
 
(9 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
Viene di seguito mostrato un codice per fondere due immagini.  
+
Viene di seguito mostrato un codice per fondere due immagini in una sola.  
  '''Public''' Sub Button1_Click()
+
  Public Sub Button1_Click()
 
   
 
   
   Dim im1, im2 As New Image
+
   Dim im1, im2 As Image
 
    
 
    
 
  <Font Color=gray>' ''Viene caricata la prima immagine:''</font>
 
  <Font Color=gray>' ''Viene caricata la prima immagine:''</font>
   im1 = Image.Load("<Font Color=gray>''/percorso/del/primo/file/immagine''</font>")
+
   im1 = Image.Load("<Font Color=darkgreen>''/percorso/del/primo/file/immagine''</font>")
 
    
 
    
 
  <Font Color=gray>' ''Viene caricata la seconda immagine:''</font>
 
  <Font Color=gray>' ''Viene caricata la seconda immagine:''</font>
   im2 = Image.Load("<Font Color=gray>''/percorso/del/secondo/file/immagine''</font>")
+
   im2 = Image.Load("<Font Color=darkgreen>''/percorso/del/secondo/file/immagine''</font>")
 
    
 
    
 
  <Font Color=gray>' ''La prima immagine viene resa manipolabile con la Classe "Paint":''</font>
 
  <Font Color=gray>' ''La prima immagine viene resa manipolabile con la Classe "Paint":''</font>
 
   With Paint
 
   With Paint
 
     .Begin(im1)
 
     .Begin(im1)
  <Font Color=gray>' ''Disegna la seconda immagine sopra la prima immagine:''</font>
+
  <Font Color=gray>' ''Disegna la seconda immagine - senza ridimensionamento - "sopra" la prima immagine:''</font>
     .DrawImage(im2, 0, 0, 100, 100)
+
     .DrawImage(im2, 0, 0, im2.W, im2.H)
 
     .End
 
     .End
 
   End With   
 
   End With   
Riga 21: Riga 21:
 
   PictureBox1.Image = im1
 
   PictureBox1.Image = im1
 
   
 
   
  '''End'''
+
  End
 +
Va precisato che la seconda immagine si ''sovrappone'' alla prima immagine, laddove essa ha pixel <SPAN Style="text-decoration:underline">non</span> trasparenti.
  
Per mescolare le due immagini, ma facendo in modo che la seconda sia semitrasparente, cosicché al di sotto di essa si intraveda la parte della prima immagine coperta, allora alla seconda immagine dovrà applicarsi il metodo "''.Opacity'' ".
+
Per mescolare le due immagini, ma facendo in modo che al di sotto della seconda immagine si intraveda la parte della prima immagine coperta, bisognerà rendere "semitrasparente" tale seconda immagine applicando il Metodo ".Opacity()" della Classe ''Image'' subito dopo che detta immagine sia stata caricata.
 +
<BR>Ad esempio riprendendo il codice precedente:
 +
im2<FONT Color=#B22222><B>.Opacity</b></font>(0.3)
 +
oppure impostando l'opacità nel sesto argomento del Metodo ".DrawImage()" della Classe ''Paint'':
 +
.DrawImage(im2, 0, 0, im2.W, im2.H, <FONT Color=#B22222><B>0.3</b></font>)

Versione attuale delle 05:37, 21 mar 2024

Viene di seguito mostrato un codice per fondere due immagini in una sola.

Public Sub Button1_Click()

 Dim im1, im2 As Image
  
' Viene caricata la prima immagine:
 im1 = Image.Load("/percorso/del/primo/file/immagine")
 
' Viene caricata la seconda immagine:
 im2 = Image.Load("/percorso/del/secondo/file/immagine")
 
' La prima immagine viene resa manipolabile con la Classe "Paint":
 With Paint
   .Begin(im1)
' Disegna la seconda immagine - senza ridimensionamento - "sopra" la prima immagine:
   .DrawImage(im2, 0, 0, im2.W, im2.H)
   .End
 End With   
 
' Mostra il risultato in una "PictureBox":
 PictureBox1.Image = im1

End

Va precisato che la seconda immagine si sovrappone alla prima immagine, laddove essa ha pixel non trasparenti.

Per mescolare le due immagini, ma facendo in modo che al di sotto della seconda immagine si intraveda la parte della prima immagine coperta, bisognerà rendere "semitrasparente" tale seconda immagine applicando il Metodo ".Opacity()" della Classe Image subito dopo che detta immagine sia stata caricata.
Ad esempio riprendendo il codice precedente:

im2.Opacity(0.3)

oppure impostando l'opacità nel sesto argomento del Metodo ".DrawImage()" della Classe Paint:

.DrawImage(im2, 0, 0, im2.W, im2.H, 0.3)