Ogni tanto, quando posso cerco di imparare qualche cosa di nuovo, questa volta ho giocato un pò con immagini e stringhe.
Per la realizzazione ho utilizzato le classi di System.Drawing:
C#
/// <summary>
/// Caricamento immagine da file
/// </summary>
/// <param name="nomeFile">File contenente l'immagine</param>
/// <returns></returns>
System.Drawing.Image CaricaImmagine (string nomeFile)
{
using (Bitmap img = new Bitmap(nomeFile))
return new Bitmap(img);
}
/// <summary>
/// Disegna testo sopra un'immagine
/// </summary>
/// <param name="nomeFile">Nome file contenente l'immagine</param>
/// <param name="testo">Testo da disegnare nell'immagine</param>
/// <returns>Image</returns>
public System.Drawing.Image DrawTestoSuBitmap(string nomeFile, string testo)
{
// recupero immagine
Image imageFile = this.CaricaImmagine(nomeFile);
// creazione di un oggetto di tipo Graphics
Graphics g = Graphics.FromImage(imageFile);
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
// Da msdn
// Creazione del pennello e scelta del colore
SolidBrush drawBrush = new SolidBrush(Color.Black);
// generazione font da utilizzare
System.Drawing.Font drawFont = this.Font;
if (drawFont == null)
{
drawFont = new System.Drawing.Font("Courier", 20,System.Drawing.FontStyle.Regular);
}
// Generazione del punto di posizionamento del testo
PointF drawPoint = new PointF(10.0F, 100.0F);
// se si è passato un testo vuoto non si fa nulla
if (!string.IsNullOrEmpty(testo))
g.DrawString(testo,drawFont, drawBrush, drawPoint);
// rigeneriamo l'oggetto Image modificato
g.DrawImage(imageFile,new Point(0,0));
// restituzione Image all'oggetto chiamante
return imageFile;
}
VB.NET
''' <summary>
''' Caricamento immagine da file
''' </summary>
''' <param name="nomeFile">File contenente l'immagine</param>
''' <returns></returns>
Private Function CaricaImmagine(ByVal nomeFile As String) As System.Drawing.Image
Using img As New Bitmap(nomeFile)
Return New Bitmap(img)
End Using
End Function
''' <summary>
''' Disegna testo sopra un'immagine
''' </summary>
''' <param name="nomeFile">Nome file contenente l'immagine</param>
''' <param name="testo">Testo da disegnare nell'immagine</param>
''' <returns>Image</returns>
Public Function DrawTestoSuBitmap(ByVal nomeFile As String, ByVal testo As String) As System.Drawing.Image
' recupero immagine
Dim imageFile As Image = Me.CaricaImmagine(nomeFile)
' creazione di un oggetto di tipo Graphics
Dim g As Graphics = Graphics.FromImage(imageFile)
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias
' Da msdn
' Creazione del pennello e scelta del colore
Dim drawBrush As New SolidBrush(Color.Black)
' generazione font da utilizzare
Dim drawFont As System.Drawing.Font = Me.Font
If drawFont Is Nothing Then
drawFont = New System.Drawing.Font("Courier", 20, System.Drawing.FontStyle.Regular)
End If
' Generazione del punto di posizionamento del testo
Dim drawPoint As New PointF(10F, 100F)
' se si è passato un testo vuoto non si fa nulla
If Not String.IsNullOrEmpty(testo) Then
g.DrawString(testo, drawFont, drawBrush, drawPoint)
End If
' rigeneriamo l'oggetto Image modificato
g.DrawImage(imageFile, New Point(0, 0))
' restituzione Image all'oggetto chiamante
Return imageFile
End Function
Nessun commento:
Posta un commento