Immagine Watermark – Codice VB.NET

Immagine Watermark: come sovrapporre un’ immagine con colore trasparenza e regolazione dell’intensità della stessa con una funzione in codice VB.NET

Introduzione

Può capitare che in alcune parti del nostro programma occorra per qualche motivo cambiare le dimensioni di una immagine. Ad esempio se stiamo implementando un elaboratore di immagini, sapere come fare a inserire una immagine watermark, ovvero un “timbro” tramite vb.net è uno dei passi fondamentali. La funzione che ho ideato, girando qua e la sul web e rielaborando il tutto, che si occupa appunto del ridimensionare immagini è: IngAC_IMMAGINE_WATERMARK (ByVal Immagine As Bitmap, ByVal Immagine_Watermark As Bitmap, ByVal Pos_X As Integer, ByVal Pos_Y As Integer, Optional ByVal Trasparenza As Byte = 0) As Bitmap.

[codesyntax lang=”vbnet”]

Public Function IngAC_IMMAGINE_WATERMARK(ByVal Immagine As Bitmap,
                                        ByVal Immagine_Watermark As Bitmap,
                                        ByVal Pos_X As Integer,
                                        ByVal Pos_Y As Integer,
                                        Optional ByVal Trasparenza As Byte = 0) As Bitmap
        ' Parte opzionale rende soffuso il watermark
        Trasparenza = Trasparenza / 2 + 50
        Dim IMG_WMK As Bitmap = IngAC_IMMAGINE_LUMINOSITA(Immagine_Watermark, Trasparenza)
        ' fine parte opzionale
        Try
            ' Setta il colore transparente del watermark.
            IMG_WMK.MakeTransparent(IMG_WMK.GetPixel(0, 0))
            ' Copia sull'immagine di partenza
            Dim bmp As Image = New Bitmap(Immagine)
            Dim g As Graphics = Graphics.FromImage(bmp)
            g.DrawImage(IMG_WMK, Pos_X, Pos_Y)
            Return bmp
        Catch
            MsgBox(Err.Description)
            Return Nothing
        End Try
    End Function

[/codesyntax]

La funzione per inserire un’ immagine watermark con vb.net

La funzione IngAC_IMMAGINE_WATERMARK ha come input:

  • Immagine che è l’immagine orginale che può provenire sia da file che da picturebox o anche da altri oggetti image o bitmap;
  • Immagine_Watermark che è l’immagine “timbro”, un logo, etc… che può provenire sia da file che da picturebox o anche da altri oggetti image o bitmap;
  • Pos_X che rappresenta la posizione orizzontale in pixel del watermark;
  • Pos_Y che rappresenta la posizione verticale in pixel del watermark;
  • Trasparenza (opzionale) che può assumere valori percentuali compresi tra 0 e 100 a seconda che si voglia la completa opacità (0) o la trasparenza completa (100).

Funzionamento di IngAC_IMMAGINE_WATERMARK ()

Il funzionamento è semplicissimo; occorre innanzi tutto includere Imports System.Drawing.Imaging che permette di accedere alle funzionalità grafiche di vb.net e alle varie classi inerenti. Per la trasparenza si è fatto ricorso alla funzione IngAC_IMMAGINE_LUMINOSITA già implementata in altra sede e da inserire insieme  a IngAC_IMMAGINE_WATERMARK. Con IMG_WMK.MakeTransparent si imposta il colore trasparente prendendolo direttamente dal primo pixel (0,0) e infine la funzione g.DrawImage completa il resto.

Link Utili:

Immagine watermark - Codice VB.NET

Immagine watermark – Codice VB.NET

You may also like...