domenica 21 settembre 2025

C# trasformare un’immagine jpg a colore in bianco e nero .Net 9

C# effetto bianco e nero


In questo frammento di codice, vedremo come tramite le classi presenti nello spazio dei nomi System.Drawing, possiamo trasformare un’immagine a colori di tipo Jpeg, in una nuova immagine in bianco nero.

Tramite linguaggio di programmazione C# ed in un progetto di tipo Windows Forms, con la versione 9 di .Net, trasformeremo l’immagine in bianco e nero.

In alto, sopra ad ogni dichiarazione, inseriamo lo spazio dei nomi per la gestione della grafica.

Di seguito si riporta il frammento di codice delle suddette operazioni.


C#

using System.Drawing.Imaging;



Si crea una funzione, che riceve due parametri, uno riguardante il percorso e nome dell’immagine a colori,  e l’altro il percorso e nome della nuova immagine che sarà in bianco e nero.  La funzione esaminerà i vari pixel dell’immagine a calori, per ricreare una nuova immagine a scala di colori grigi.


Di seguito si riporta il codice delle suddette operazioni.


C#

public static  void ConvertiBiancoNero(string inputImagePath, string outputImagePath)

{

    try

    {

        // Carica l'immagine

        Bitmap ImmagineOriginale = new Bitmap(inputImagePath);

        Bitmap NuovaImmagineBiancoNero = new Bitmap(ImmagineOriginale.Width, ImmagineOriginale.Height);

 

        //Effettua un ciclo per i vari pixel

        for (int y = 0; y < ImmagineOriginale.Height; y++)

        {

            for (int x = 0; x < ImmagineOriginale.Width; x++)

            {

                //Rileviamo il colore del pixel

                Color pixelColore = ImmagineOriginale.GetPixel(x, y);

 

                //Calcola la media dei valori RGB

                int grayScale = (int)((pixelColore.R + pixelColore.G + pixelColore.B) / 3);

 

                //Crea un nuovo colore in scala di grigi

                Color newColor = Color.FromArgb(grayScale, grayScale, grayScale);

 

                // Imposta il nuovo colore nel pixel corrispondente dell'immagine di output

                NuovaImmagineBiancoNero.SetPixel(x, y, newColor);

            }

        }

 

        // Salva l'immagine in bianco e nero

        NuovaImmagineBiancoNero.Save(outputImagePath, ImageFormat.Jpeg); 

 

        MessageBox.Show("Immagine trasformata in bianco e nero.");

    }

    catch (Exception ex)

    {

        MessageBox.Show("Errore durante la conversione: " + ex.Message);

    }

}




Di seguito si riporta il frammento di codice da inserire nell’evento click di un pulsante, per richiamare tale funzione.


C#

private void BtnBiancoNero_Click(object sender, EventArgs e)

 {

     string immagineOriginale = "C:\\varie\\faro.jpg"; 

     string nuovaImmagine = "C:\\varie\\faroBiancoNero.jpg";

     ConvertiBiancoNero(immagineOriginale, nuovaImmagine);

 }


Nessun commento: