martedì 14 ottobre 2025

C# applicare un effetto sfocatura ad un'immagine a colori

 


In questo esempio di codice nel linguaggio di C# in ambiente Windows Application, vedremo come applicare ad un'immagine a colori, l'effetto sfocatura.

Tramite le classi di .Net 9, dello spazio dei nomi system.drawing possiamo applicare i vari effetti grafici.


Di seguito si riporta la dichiarazione dello spazio dei nomi.


C#

using System.Drawing.Imaging;


Di seguito il codice da inserire nell'evento click di un pulsante per applicare l'effetto sfocatura ad un'immagine.


C#

private void BtnEffettoSfocatura_Click(object sender, EventArgs e)

 {

 

     try

     {

          

 

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

         string immagineNuovaPizzle = "C:\\varie\\faroSfocatura.jpg";

 

         Bitmap originalImage = new Bitmap(immagineOriginale);

         Bitmap blurredImage = new Bitmap(originalImage.Width, originalImage.Height);

 

         // Applica una semplice sfocatura media (box blur)

         int blurSize = 5; //Valore per aumentare o diminuire la sfocatura

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

         {

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

             {

                 int r = 0, g = 0, b = 0, count = 0;

                 for (int ky = -blurSize; ky <= blurSize; ky++)

                 {

                     for (int kx = -blurSize; kx <= blurSize; kx++)

                     {

                         int px = x + kx;

                         int py = y + ky;

                         if (px >= 0 && px < originalImage.Width && py >= 0 && py < originalImage.Height)

                         {

                             Color pixel = originalImage.GetPixel(px, py);

                             r += pixel.R;

                             g += pixel.G;

                             b += pixel.B;

                             count++;

                         }

                     }

                 }

                 if (count > 0)

                 {

                     Color avgColor = Color.FromArgb(r / count, g / count, b / count);

                     blurredImage.SetPixel(x, y, avgColor);

                 }

             }

         }

 

         blurredImage.Save(immagineNuovaPizzle, ImageFormat.Jpeg);

         originalImage.Dispose();

         blurredImage.Dispose();

         MessageBox.Show("Effetto sfocatura applicato con successo.");

 

 

 

     }

     catch (Exception ex)

     {

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

     }

 } 






Nessun commento: