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