Creative Commons BY-NC-ND 2.5Questo sito e tutto il suo contenuto sono distribuiti sotto la licenza Creative Commons Attribuzione - Non Commerciale - Non opere derivate 2.5 Italia e con le condizioni d'uso definite nel disclaimer: siete pregati di leggere entrambi questi documenti prima di usufruire dei contenuti di questo sito. Per alcuni contenuti è necessaria una registrazione gratuita: non è necessario pagare e non è necessario accumulare punteggi per accedere agli articoli e scaricare i sorgenti. Basta solo essere onesti. Se volete che questo sito continui a rimanere attivo, a contribuire ogni giorno alla diffusione della cultura libera, non copiate il materiale per ripubblicarlo in altri luoghi : chi fa questo è solo un miserabile e un perdente. Se volete partecipare su settorezero e rendere le vostre idee, i vostri progetti, fruibili da tutti senza limitazioni, come dovrebbe essere in un paese civile e acculturato, potete farlo tranquillamente.

VB.NET – Aggiungere del testo in sovraimpressione ad un’immagine

Autore: Giovanni Bernardo | Data pubblicazione: 1 febbraio 2009
Categorie: Grafica VB.NET

Inizio con questo articolo una serie di piccoli e semplici espedienti per manipolare le immagini con Visual Basic.NET. In questo appuntamento vedremo come è semplice aggiungere una scritta personalizzata ad un’immagine. Iniziamo dapprima ad importare lo spazio dei nomi drawing:

Imports System.Drawing
Imports System.Drawing.Drawing2D

Dopodichè abbiamo bisogno di un’immagine da manipolare, supponiamo pertanto di avere una PictureBox chiamata PictureBox1, contenente l’immagine sulla quale vogliamo apporre del testo personalizzato.

Nota:
Potete caricare un’immagine a runtime nella picturebox utilizzando ad esempio l’istruzione:

PictureBox1.Image = Image.FromFile("test.bmp")

oppure potete fare una cosa molto più raffinata includendo un OpenFileDialog dal quale l’utente può scegliere l’immagine da selezionare, ma questo esula dallo scopo di questo tutorial.

Definiamo quindi le variabili di cui abbiamo bisogno per lavorare:

Dim testo As String = "Testo in sovraimpressione"
Dim grandezzaTesto As SizeF
Dim temp As Graphics
Dim myFont As New Font("Tahoma", 10, FontStyle.Regular)
Dim xLocation, yLocation As Single

Come è facile da intuire… “Testo” è la variabile che andrà a contenere la stringa da sovraimporre all’immagine (che magari possiamo anche recuperare da una textbox).

La variabile grandezza, dichiarata come SizeF, è in realtà un’oggetto che contiene una coppia di numeri a virgola mobile e viene comunemente utilizzato per immagazzinare le dimensioni (larghezza e altezza) di un rettangolo.

La variabile Temp dichiara un oggetto di tipo Graphics che ci permette di effettuare questo tipo di elaborazione sull’immagine.

Creiamo quindi un’istanza dell’oggetto myFont per definire il font che vogliamo utilizzare per il testo da sovraimporre.

Definiamo quindi due variabili xLocation e yLocation per il posizionamento del riquadro contenente il testo.

Passiamo quindi alla fase di sovraimpressione:

temp = PictureBox1.CreateGraphics()
grandezzaTesto = temp.MeasureString(testo, myFont)
xLocation = (PictureBox1.Image.Width - grandezzaTesto.Width)
yLocation = (PictureBox1.Image.Height - grandezzaTesto.Height)
temp.DrawString(testo, myFont, Brushes.Lime, xLocation, yLocation)

La prima istruzione crea in pratica l’oggetto Graphics a partire dall’immagine contenuta nella picturebox. Ricaviamo quindi le dimensioni (larghezza e altezza) del riquadro che contiene il testo. Impostiamo quindi le due variabili per il posizionamento.

Nota:
Utilizzando:

xLocation = (PictureBox1.Image.Width - grandezzaTesto.Width)
yLocation = (PictureBox1.Image.Height - grandezzaTesto.Height)

il testo verrà posizionato in basso a destra sull’immagine. Impostando invece a zero queste due variabili, il  testo verrà posizionato in alto a sinistra. Per altri posizionamenti basta un po di fantasia.

Utilizziamo infine il metodo DrawString dell’oggetto Graphics per poter disegnare il testo nell’immagine.  Al metodo DrawString vanno passati: la stringa contenente il testo, l’oggetto font, il colore da utilizzare per il testo (che è un’enumerazione dell’oggetto Brushes) e quindi le coordinate per definirne il posizionamento.

Il codice completo, da associare magari sull’evento Click di un pulsante o a un’altra routine a scelta, è il seguente:

Dim testo As String = "Testo in sovraimpressione"
Dim grandezzaTesto As SizeF
Dim temp As Graphics
Dim myFont As New Font("Tahoma", 10, FontStyle.Regular)
Dim xLocation, yLocation As Single
 
temp = PictureBox1.CreateGraphics()
 
grandezzaTesto = temp.MeasureString(testo, myFont)
xLocation = (PictureBox1.Image.Width - grandezzaTesto.Width)
yLocation = (PictureBox1.Image.Height - grandezzaTesto.Height)
 
temp.DrawString(testo, myFont, Brushes.Lime, xLocation, yLocation)

Articoli che potrebbero interessarti

L'articolo ti è piaciuto o ti è stato utile per risolvere un problema? Supporta e mantieni in vita questo sito, ci basta soltanto un caffè o una birra.
Se desiderate che settorezero continui a rimanere gratuito e fruibile da tutti, non copiate il nostro materiale e segnalateci se qualcuno lo fa

Puoi lasciare un commento, o un trackback dal tuo sito.

  1. Ancora nessun commento.

Devi essere collegato per lasciare un commento.

  1. Ancora nessun trackback
settorezero.com e il logo Zroid™ ©2007÷2012 Giovanni Bernardo - E' vietata la copia e la distribuzione anche parziale dei contenuti di questo sito web senza l'esplicito consenso dell'autore.
I contenuti di settorezero.com sono distribuiti sotto una licenza Creative Commons Attribuzione-Non Commerciale-Non Opere derivate 2.5 Italia a cui vanno aggiunte le condizioni d'uso definite nel disclaimer.
settorezero.com e tutti i suoi contenuti sono tutelati dalla legge sul diritto d'autore per cui i trasgressori sono perseguibili a norma di legge.
Creative Commons BY-NC-ND 2.5
Il tema di questo sito è basato sul tema Fusion per wordpress, realizzato originariamente da digitalnature e fa uso del plugin Wassup per il computo delle statistiche. Per contattare l'autore siete pregati di utilizzare la sezione contatti.
Per essere aggiornato con tutte le novità di settorezero.com seguici anche anche su Facebook Twitter Tumblr Blogspot Youtube.