Spesso è necessario creare diversi oggetti grafici disegnando forme tra cui cerchi, linee, rettangoli, ecc. Queste forme potrebbero anche essere utilizzate per l’annotazione delle immagini. In questo articolo imparerai come disegnare forme diverse a livello di codice in C#. Dimostreremo come disegnare linee, ellissi, archi e rettangoli e generare le loro immagini.
- API C# per disegnare forme - Download gratuito
- Disegna una linea usando C#
- Disegna un’ellisse usando C#
- Disegnare un arco usando C#
- Disegna un rettangolo usando C#
API C# per disegnare forme - Download gratuito
Per disegnare diversi tipi di forme, useremo Aspose.Imaging for .NET. È un’incredibile API di modifica delle immagini che offre un’ampia gamma di funzionalità per manipolare le immagini e creare disegni. Puoi scaricare l’API o installarla da NuGet.
PM> Install-Package Aspose.Imaging
Disegna una linea usando C#
Di seguito sono riportati i passaggi per disegnare una linea in C#.
- Innanzitutto, crea un oggetto di classe BmpOptions e imposta i bit per pixel utilizzando la proprietà BitsPerPixel.
- Quindi, assegna StreamSource utilizzando la proprietà Source.
- Crea una nuova immagine e inizializzala con l’oggetto BmpOptions e l’altezza e la larghezza dell’immagine.
- Crea un oggetto di classe Graphics e inizializzalo con l’oggetto Image.
- Cancella la superficie dell’immagine con un po’ di colore usando il metodo Graphics.Clear().
- Disegna una linea usando il metodo Graphics.DrawLine(Pen, int, int, int, int).
- Genera e salva l’immagine usando il metodo Image.Save().
L’esempio di codice seguente mostra come disegnare una linea in C#.
// Crea BmpOptions
BmpOptions bmpCreateOptions = new BmpOptions();
bmpCreateOptions.BitsPerPixel = 32;
// Definire la proprietà di origine per l'istanza di BmpOptions
bmpCreateOptions.Source = new StreamSource();
// Crea un'istanza di Image e chiama il metodo create passando il metodo
// oggetto bmpCreateOptions
Image image = Image.Create(bmpCreateOptions, 500, 500);
// Crea e inizializza un'istanza della classe Graphics
Graphics graphic = new Graphics(image);
// Cancella la superficie dell'immagine con il colore bianco
graphic.Clear(Color.White);
// Disegna una linea tratteggiata specificando l'oggetto Pen di colore blu e
// punti coordinati
graphic.DrawLine(new Pen(Color.Blue, 3), 18, 18, 200, 200);
graphic.DrawLine(new Pen(Color.Blue, 3), 18, 200, 200, 18);
// Disegna una linea continua specificando che l'oggetto Pen ha Solid
// Pennello con colore rosso e strutture a due punte
graphic.DrawLine(new Pen(new SolidBrush(Color.Red), 3),
new Point(18, 18), new Point(18, 200));
// Disegna una linea continua specificando che l'oggetto Pen ha Solid
// Pennello con colore bianco e strutture a due punte
graphic.DrawLine(new Pen(new SolidBrush(Color.Orange), 3),
new Point(200, 18), new Point(18, 18));
// Salva tutte le modifiche
image.Save("draw_lines.bmp");
Di seguito è riportato l’output dell’esempio di codice precedente.
Disegna un’ellisse usando C#
Di seguito sono riportati i passaggi per disegnare un’ellisse in C#.
- Innanzitutto, crea un oggetto di classe BmpOptions e imposta i bit per pixel utilizzando la proprietà BitsPerPixel.
- Quindi, assegna StreamSource utilizzando la proprietà Source.
- Crea una nuova immagine e inizializzala con l’oggetto BmpOptions e l’altezza e la larghezza dell’immagine.
- Crea un oggetto di classe Graphics e inizializzalo con l’oggetto Image.
- Cancella la superficie dell’immagine con un po’ di colore usando il metodo Graphics.Clear().
- Disegna un’ellisse usando il metodo Graphics.DrawEllipse(Pen, Rectangle).
- Genera e salva l’immagine usando il metodo Image.Save().
L’esempio di codice seguente mostra come disegnare un’ellisse su un’immagine in C#.
// Crea BmpOptions
BmpOptions bmpCreateOptions = new BmpOptions();
bmpCreateOptions.BitsPerPixel = 32;
// Definire la proprietà di origine per l'istanza di BmpOptions
bmpCreateOptions.Source = new StreamSource();
// Crea un'istanza di Image e chiama il metodo create passando il metodo
// oggetto bmpCreateOptions
Image image = Image.Create(bmpCreateOptions, 500, 500);
// Crea e inizializza un'istanza della classe Graphics
Graphics graphic = new Graphics(image);
// Cancella la superficie dell'immagine con il colore bianco
graphic.Clear(Color.White);
// Disegna una forma di ellisse tratteggiata specificando che l'oggetto Pen ha il rosso
// colore e un rettangolo circostante
graphic.DrawEllipse(new Pen(Color.Red, 3), new Rectangle(60, 40, 70, 120));
// Disegna una forma di ellisse continua specificando l'oggetto Pen che ha
// solid brush with blue colore e un rettangolo circostante
graphic.DrawEllipse(new Pen(new SolidBrush(Color.Blue), 3),
new Rectangle(40, 60, 120, 70));
// Salva tutte le modifiche
image.Save("draw_ellipse.bmp");
Di seguito è riportato l’output dell’esempio di codice precedente.
Disegna un arco usando C#
Di seguito sono riportati i passaggi per disegnare un arco in C#.
- Innanzitutto, crea un oggetto di classe BmpOptions e imposta i bit per pixel utilizzando la proprietà BitsPerPixel.
- Quindi, assegna StreamSource utilizzando la proprietà Source.
- Crea una nuova immagine e inizializzala con l’oggetto BmpOptions e l’altezza e la larghezza dell’immagine.
- Crea un oggetto di classe Graphics e inizializzalo con l’oggetto Image.
- Cancella la superficie dell’immagine con un po’ di colore usando il metodo Graphics.Clear().
- Disegna l’arco usando il metodo Graphics.DrawArc(Pen, float x, float y, float width, float height, float startAngle, float sweepAngle).
- Genera e salva l’immagine usando il metodo Image.Save().
L’esempio di codice seguente mostra come disegnare un arco su un’immagine in C#.
// Crea BmpOptions
BmpOptions bmpCreateOptions = new BmpOptions();
bmpCreateOptions.BitsPerPixel = 32;
// Definire la proprietà di origine per l'istanza di BmpOptions
bmpCreateOptions.Source = new StreamSource();
// Crea un'istanza di Image e chiama il metodo create passando il metodo
// oggetto bmpCreateOptions
Image image = Image.Create(bmpCreateOptions, 500, 500);
// Crea e inizializza un'istanza della classe Graphics
Graphics graphic = new Graphics(image);
// Cancella la superficie dell'immagine con il colore bianco
graphic.Clear(Color.White);
// Disegna una forma ad arco tratteggiata specificando che l'oggetto Pen ha rosso nero
// colore e coordinate, altezza, larghezza, angoli iniziali e finali
int width = 200;
int height = 300;
int startAngle = 45;
int sweepAngle = 270;
// Disegna l'arco sullo schermo
graphic.DrawArc(new Pen(Color.Black, 3), 0, 0, width, height, startAngle, sweepAngle);
// Salva tutte le modifiche
image.Save("draw_arc.bmp");
Di seguito è riportato l’output dell’esempio di codice precedente.
Disegna un rettangolo usando C#
Di seguito sono riportati i passaggi per disegnare un rettangolo in C#.
- Innanzitutto, crea un oggetto di classe BmpOptions e imposta i bit per pixel utilizzando la proprietà BitsPerPixel.
- Quindi, assegna StreamSource utilizzando la proprietà Source.
- Crea una nuova immagine e inizializzala con l’oggetto BmpOptions e l’altezza e la larghezza dell’immagine.
- Crea un oggetto di classe Graphics e inizializzalo con l’oggetto Image.
- Cancella la superficie dell’immagine con un po’ di colore usando il metodo Graphics.Clear().
- Disegna un rettangolo usando il metodo Graphics.DrawRectangle(Pen, Rectangle).
- Genera e salva l’immagine usando il metodo Image.Save().
L’esempio di codice seguente mostra come disegnare un rettangolo su un’immagine in C#.
// Crea BmpOptions
BmpOptions bmpCreateOptions = new BmpOptions();
bmpCreateOptions.BitsPerPixel = 32;
// Definire la proprietà di origine per l'istanza di BmpOptions
bmpCreateOptions.Source = new StreamSource();
// Crea un'istanza di Image e chiama il metodo create passando il metodo
// oggetto bmpCreateOptions
Image image = Image.Create(bmpCreateOptions, 500, 500);
// Crea e inizializza un'istanza della classe Graphics
Graphics graphic = new Graphics(image);
// Cancella la superficie dell'immagine con il colore bianco
graphic.Clear(Color.White);
// Disegna una forma rettangolare tratteggiata specificando che l'oggetto Pen ha il rosso
// colore e una struttura rettangolare
graphic.DrawRectangle(new Pen(Color.Red, 3),
new Rectangle(60, 40, 70, 120));
// Disegna una forma rettangolare continua specificando l'oggetto Pen che ha
// solid brush with blue colore e una struttura rettangolare
graphic.DrawRectangle(new Pen(new SolidBrush(Color.Blue), 3),
new Rectangle(40, 60, 120, 70));
// Salva tutte le modifiche
image.Save("draw_reactangle.bmp");
Di seguito è riportato l’output dell’esempio di codice precedente.
API C# .NET Image Drawing - Ottieni una licenza gratuita
Puoi ottenere una licenza temporanea gratuita e disegnare forme senza limiti di valutazione.
Conclusione
In questo articolo hai imparato a disegnare forme in C#. Abbiamo spiegato come disegnare linee, ellissi, archi e rettangoli sulle immagini a livello di codice. Puoi facilmente integrare gli esempi di codice forniti nelle tue applicazioni C#.
Leggi di più
Puoi esplorare di più sull’API di elaborazione delle immagini .NET utilizzando documentazione. Inoltre, puoi condividere le tue domande con noi tramite il nostro forum.