martedì 17 febbraio 2026

C# trasformare un immagine in stile testo in una nuova immagine di tipo png

 

C# da immagine a testo

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);

    }

}




Nessun commento: