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:
Posta un commento