venerdì 24 ottobre 2025

C# creare da un file immagine esistente una nuova immagine con angoli arrotondati

 

C# effetto angoli tondi

In questo esempio di codice nel linguaggio di programmazione C#, vedremo come creare un nuova immagine con i quattro angoli del file immagine arrotondati, il tutto come mostrato nella figura precedente.

In un progetto di tipo “Windows Application”, utilizzando la versione 9 del Framework .Net, tramite la classi dello spazio dei nomi “system.drawing”, applicheremo questo spazio.


Inseriamo il namespace riguardante la gestione della grafica, di seguito si riporta il frammento di codice .

 

C#

using System.Drawing.Drawing2D;

using System.Drawing.Imaging;



Si crea una funzione, che data un’immagine ne crea un’altra, impostando i quattro angoli della foto arrotondati.
Di seguito si riporta la funzione che crea una nuova immagine con gli angoli smusati.




C#

private Bitmap CreaEffettoAngoliTondi(Bitmap immagineOriginale, int raggioAngolo)

 {

     Bitmap immagineModificata = new Bitmap(immagineOriginale.Width, immagineOriginale.Height);

     using (Graphics g = Graphics.FromImage(immagineModificata))

     {

         g.SmoothingMode = SmoothingMode.AntiAlias;

 

         // Crea un rettangolo con angoli arrotondati

         using (GraphicsPath path = new GraphicsPath())

         {

             path.AddArc(0, 0, raggioAngolo, raggioAngolo, 180, 90);

             path.AddArc(immagineOriginale.Width - raggioAngolo, 0, raggioAngolo, raggioAngolo, 270, 90);

             path.AddArc(immagineOriginale.Width - raggioAngolo, immagineOriginale.Height - raggioAngolo, raggioAngolo, raggioAngolo, 0, 90);

             path.AddArc(0, immagineOriginale.Height - raggioAngolo, raggioAngolo, raggioAngolo, 90, 90);

             path.CloseFigure();

 

             // Imposta il clipping

             g.SetClip(path);

             g.DrawImage(immagineOriginale, 0, 0, immagineOriginale.Width, immagineOriginale.Height);

         }

     }

     return immagineModificata;

 }



La funzione verrà richiamata nell’evento click di un pulsante, di seguito si riporta il frammento di codice che richiama la funzione.


C#

 

private void BtnEffettoAngoliTondi_Click(object sender, EventArgs e)

 {

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

 

     string immagineNuovaAngoliTondi = "C:\\varie\\faroAngoliTondi.jpg";

 

 

     try

     {

         using (Bitmap originalBitmap = new Bitmap(immagineOriginale))

         {

             //Il valore 120 è il raggio degli angoli maggiore è il numero e più sono arrotondati

             Bitmap roundedBitmap = CreaEffettoAngoliTondi(originalBitmap, 120);

             roundedBitmap.Save(immagineNuovaAngoliTondi);

             MessageBox.Show("Immagine angoli tondi creata con successo");

         }

     }

     catch (Exception ex)

     {

         MessageBox.Show("Errore durante la creazione dell'immagine arrotondata: " + ex.Message);

     }

 }



Nessun commento: