Il blog per tutti gli smanettoni del pc

Timbrare un’ immagine con un altra immagine [VB.net]

dic 19

Eccoci di nuovo con un altro articolo sulla programmazione vb.net dedicata alle immagini . Oggi realizzeremo un semplice software per “timbrare” delle immagini con un logo o meglio crearemo un software per  sovrapporre ad un’ immagine selezionata un’altra immagine di dimensione piu’ piccola come per esempio un logo .

Il codice in questione è il seguente, proviamo ad analizzarlo :

Public Class Form1
    Function timbra(ByRef img As Bitmap, ByRef timbro As Bitmap) As Bitmap
        Dim eg As Graphics
        timbra = New Bitmap(img.Width, img.Height)
        eg = Graphics.FromImage(timbra)
        eg.DrawImage(img, New Point(0, 0))
        eg.DrawImage(timbro, New Point((img.Width - timbro.Width) - 20, (img.Height - timbro.Height) - 20))
    End Function
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim timbro As Bitmap = New Bitmap("c:\tmp\timbro.png")
        Dim immagine As Bitmap = New Bitmap("c:\tmp\1.gif")
        Dim imgTimbrata As Bitmap = timbra(immagine, timbro)
        imgTimbrata.Save("c:\tmp\1t.jpg", Drawing.Imaging.ImageFormat.Jpeg)
    End Sub
End Class

La parte piu’ importante è la funzione Timbra la quale accetta due parametri di tipo bitmap e restituisce la nuova immagine modificata . Il primo parametro è l’immagine da timbrare mentre il secondo è il timbro da usare .

Function timbra(ByRef img As Bitmap, ByRef timbro As Bitmap) As Bitmap
        Dim eg As Graphics

Subito dopo la definizione della funzione , dichiariamo la variabile eg di tipo grapich, essa come abbiamo visto in un articolo precedente ( classe grapich ) si occupa della creazione e della modifica di immagini.

timbra = New Bitmap(img.Width, img.Height)

Timbra , la variabile di tipo bitmap , verrà restituita quando il codice della funzione sarà eseguito. Con questo pezzo di codice invochiamo il costruttore bitmap e dichiariamo le dimensioni della nuova immagine.

 eg = Graphics.FromImage(timbra)

Con Graphics.FromImage(timbra) passiamo il controllo dell’immagine timbra all’istanza della classe graphic eg .

eg.DrawImage(img, New Point(0, 0))
eg.DrawImage(timbro, New Point((img.Width - timbro.Width) - 20, (img.Height - timbro.Height) - 20))

Questa è la parte piu’ importante del codice e per capirla bene dovete sapere che DrawImage serve per copiare tutti i px di un immagine su un’altra immagine . La funzione , accetta due parametri, il primo parametro è l’immagine da copiare mentre il secondo sono le cordinate, x e y, dove incollare l’immagine .

Con queste due righe di codice non facciamo altro che duplicare l’immagine da timbrare e inserire l’immagine timbro in basso a destra .

Lascia un Commento