sabato 27 settembre 2025

C# trasformare un’immagine a colori con effetto goccioline .Net 9

 

C# effetto goccioline su immagine

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

}





Nessun commento: