In questo esempio di codice del linguaggio di programmazione C#, vedremo come applicare ad un’immagine a colori, l’effetto goccioline, utilizzando la versione 9 di .Net ed in un progetto di tipo Windows Application.
L’effetto finale sarà come nell’immagine precedente.
Aggiungiamo lo spazio dei nome System.Drawing nel progetto.
Di seguito la funzione per applicare l’effetto goccioline ad un’immagine, che tramite commenti viene spiegata la tecnica usata.
C#
public static void effettoPioggia(string inputImagePath, string outputImagePath)
{
try
{
Bitmap immagineOriginale = new Bitmap(inputImagePath);
Bitmap nuovaImmagine = new Bitmap(immagineOriginale.Width,
immagineOriginale.Height);
using (Graphics g = Graphics.FromImage(nuovaImmagine))
{
// Disegna l'immagine originale
g.DrawImage(immagineOriginale, 0,
0, immagineOriginale.Width, immagineOriginale.Height);
//Crea un pennello per le goccioline
Brush dropletBrush = new SolidBrush(Color.FromArgb(100,
0, 0, 255)); // Goccioline blu semitrasparenti
//Disegna goccioline in posizioni
casuali
Random rand = new Random();
for (int i = 0; i < 50; i++) //Numero delle goccioline (modificare
per più o meno)
{
int x = rand.Next(0,
immagineOriginale.Width);
int y = rand.Next(0, immagineOriginale.Height);
int size = rand.Next(5, 20); // Grandezza casuale delle goccioline
g.FillEllipse(dropletBrush,
x, y, size, size);
}
}
//Salvo la nuova immagine
nuovaImmagine.Save(outputImagePath, ImageFormat.Png);
//Libero la memoria
immagineOriginale.Dispose();
nuovaImmagine.Dispose();
MessageBox.Show("Creata
immagine con effetto goccioline");
}
catch (Exception ex)
{
MessageBox.Show("Errore
nell'applicazione dell'effetto goccioline: " + ex.Message);
}
}
Di seguito l’esempio di codice per richiamare la funzione.
C#
private void
BtnEffettoGoccioline_Click(object sender,
EventArgs e)
{
string immagineOriginale = "C:\\varie\\faro.jpg";
string nuovaImmagine = "C:\\varie\\faroGoccioline.jpg";
// Chiama la funzione per convertire l'immagine
effettoPioggia(immagineOriginale,
nuovaImmagine);
}

Le opere pubblicate in questo blog sono sotto la licenza Creative Commons. Attribuzione- No commerciale e no derivate.
Nessun commento:
Posta un commento