Fondere due immagini in una sola

Da Gambas-it.org - Wikipedia.
Versione del 21 mar 2024 alle 06:37 di Vuott (Discussione | contributi)

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

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)