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