In questo frammento di codice nel linguaggio di programmazione C#, ambiente Windows Forms, viene illustrata una tecnica per trasformare immagine in un testo, in formato png.
Tramite le classi dello spazio dei nomi "System.Drawing" possiamo creare tale effetto.
Spazio dei nomi:
C#
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
Nell'evento click di un pulsante in Windows Forms:
C#
private void BtnImmagineScritta_Click(object sender, EventArgs e)
{
try
{
// Percorso dell'immagine originale
string percorsoImmagine = @"C:\varie\Immagine.jpg";
// Percorso della nuova immagine
string percorsoNuovaImmagine = @"C:\varie\ImmagineTesto.png";
//Oggetto riguardante l'immagine originale
Bitmap immagine = new Bitmap(percorsoImmagine);
//Oggetto per la nuova immagine con lo stesso formato
Bitmap nuovaImmagine = new Bitmap(immagine.Width, immagine.Height);
//Oggetto Graphics per disegnare sulla nuova immagine
Graphics g = Graphics.FromImage(nuovaImmagine);
//Imposto lo sfondo trasparente
g.Clear(Color.Transparent);
//Oggetto riguardante l'aspetto della scritta
Font font = new Font("Arial", 50, FontStyle.Bold);
//Oggetto Brush per la scritta
Brush brush = new SolidBrush(Color.White);
//Dimensione della scritta - larghezza e l'altezza
SizeF size = g.MeasureString("Emanuele", font);
//Calcolo la posizione della scritta
float x = (nuovaImmagine.Width - size.Width)
/ 2;
float y = (nuovaImmagine.Height - size.Height)
/ 2;
//Oggetto GraphicsPath per la scritta
GraphicsPath path = new GraphicsPath();
path.AddString("Emanuele", font.FontFamily, (int)font.Style, font.Size, new PointF(x, y), StringFormat.GenericDefault);
//Imposta la modalità di ritaglio
g.SetClip(path);
//Disegna l'immagine originale sulla nuova immagine
g.DrawImage(immagine, 0, 0);
// Salva la nuova immagine
nuovaImmagine.Save(percorsoNuovaImmagine, ImageFormat.Png);
MessageBox.Show("Immagine creata e salvata in " + percorsoNuovaImmagine);
}
catch (Exception ex)
{
MessageBox.Show("Errore durante il salvataggio:\n" + ex.Message);
}
}

Le opere pubblicate in questo blog sono sotto la licenza Creative Commons. Attribuzione- No commerciale e no derivate.
Nessun commento:
Posta un commento