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:
- MSDN -> Classe Bitmap
- MSDN -> Classe Image
- MSDN -> System.Drawing.Imaging
- MSDN -> Metodo Bitmap.MakeTransparent
- Elenco di tutti i listati VB.NET su Romoletto Blog