giovedì 8 gennaio 2026

C# creare una scritta con colore gradiente dal blu al rosso

C# scritta gradiente



In questo esempio di codice del linguaggio di programmazione C#, vedremo come creare una scritta con colore gradiente dal blu al rosso, il tutto come nella figura precedente.
Utilizzeremo le classi presenti nello spazio dei nome "System.Drawing". 

Il codice è utilizzato in un progetto di tipo Windows Application.

Inseriamo in alto, sopra ad ogni dichiarazione, lo spazio dei nomi per la grafica.
Di seguito si riporta il frammento di codice delle suddette operazioni.


C#

using System.Drawing.Drawing2D;

using System.Drawing.Imaging;



In una qualsiasi parte della form, sempre della classe form1, si crea una funzione, che passando due parametri, quali il testo da realizzare ed il nome del file, verrà realizzato la scritta.
Tramite la classi font, Rectangle, Bitmap e Graphics, si realizzerà il file grafico.

Si riporta qui di seguito il codice del linguaggio di programmazione C# delle suddette operazioni.

C#

public   void CreaImmagineGradiente(string testo, string nomeFile)

{

    //Imposto larghezza ed altezza immagine

    int larghezza = 700; 

    int altezza = 100;

    //Imposto il Font del testo

    System.Drawing.Font font = new System.Drawing.Font("Arial", 48, FontStyle.Bold);

    //Rettangolo del testo

    Rectangle rect = new Rectangle(0, 0, larghezza, altezza);

 

    //Oggetto Bitmap per la gestione dell'immagine

    using (Bitmap bitmap = new Bitmap(larghezza, altezza))

    {

        //Oggetto di tipo Graphics per la creazione dell'immagine

        using (Graphics graphics = Graphics.FromImage(bitmap))

        {

            // Imposto la qualità del rendering

            graphics.SmoothingMode = SmoothingMode.AntiAlias;

            graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;

 

            //Crea un situazione graduale del tempo, un rettangolo con colore iniziale blu e colore finale rosso

            using (LinearGradientBrush brush = new LinearGradientBrush(

                rect,                       

                Color.Blue,                 

                Color.Red,                 

                LinearGradientMode.Horizontal)) 

            {

                //Posiziona il  testo al centro

                SizeF textSize = graphics.MeasureString(testo, font);

                float x = (larghezza - textSize.Width) / 2;

                float y = (altezza - textSize.Height) / 2;

                PointF textPosition = new PointF(x, y);

 

                //Imposta il testo sull'immagine nell'area

                graphics.DrawString(testo, font, brush, textPosition);

            }

 

            //Salvo in formato png il file

            try

            {

                bitmap.Save(nomeFile, ImageFormat.Png);

                MessageBox.Show($"Immagine '{nomeFile}' creata con successo.");

            }

            catch (Exception ex)

            {

                MessageBox.Show($"Errore durante il salvataggio dell'immagine: {ex.Message}");

            }

        }

    }

}




Di seguito il frammento di codice per eseguire tale funzione.
C#

CreaImmagineGradiente("Ciao Emanuele", "Emanuele_Gradiente.png");



Nessun commento: