Často je potřeba vytvářet různé grafické objekty kreslením tvarů včetně kruhů, čar, obdélníků atd. Tyto tvary lze také použít pro anotaci obrázků. V tomto článku se dozvíte, jak programově kreslit různé tvary v C#. Ukážeme si, jak kreslit čáry, elipsy, oblouky a obdélníky a vytvářet jejich obrázky.
- C# API pro kreslení tvarů – ke stažení zdarma
- Nakreslete čáru pomocí C#
- Nakreslete elipsu pomocí C#
- Kreslení oblouku pomocí C#
- Nakreslete obdélník pomocí C#
C# API pro kreslení tvarů – ke stažení zdarma
Pro kreslení různých typů tvarů použijeme Aspose.Imaging for .NET. Je to úžasné rozhraní API pro úpravu obrázků, které poskytuje širokou škálu funkcí pro manipulaci s obrázky a vytváření kreseb. API si můžete buď stáhnout, nebo jej nainstalovat z NuGet.
PM> Install-Package Aspose.Imaging
Nakreslete čáru pomocí C#
Následují kroky k nakreslení čáry v C#.
- Nejprve vytvořte objekt třídy BmpOptions a nastavte bity na pixel pomocí vlastnosti BitsPerPixel.
- Poté přiřaďte StreamSource pomocí vlastnosti Source.
- Vytvořte nový obrázek a inicializujte jej pomocí objektu BmpOptions a výšky a šířky obrázku.
- Vytvořte objekt třídy Graphics a inicializujte jej objektem Image.
- Vyčistěte povrch obrázku trochou barvy pomocí metody Graphics.Clear().
- Nakreslete čáru pomocí metody Graphics.DrawLine(Pen, int, int, int, int).
- Vygenerujte a uložte obrázek pomocí metody Image.Save().
Následující ukázka kódu ukazuje, jak nakreslit čáru v C#.
// Vytvořte BmpOptions
BmpOptions bmpCreateOptions = new BmpOptions();
bmpCreateOptions.BitsPerPixel = 32;
// Definujte vlastnost source pro instanci BmpOptions
bmpCreateOptions.Source = new StreamSource();
// Vytvoří instanci Image a volání metody create předáním
// objekt bmpCreateOptions
Image image = Image.Create(bmpCreateOptions, 500, 500);
// Vytvořte a inicializujte instanci třídy Graphics
Graphics graphic = new Graphics(image);
// Vyčistěte povrch obrázku bílou barvou
graphic.Clear(Color.White);
// Nakreslete tečkovanou čáru určením objektu Pen, který má modrou barvu a
// koordinační body
graphic.DrawLine(new Pen(Color.Blue, 3), 18, 18, 200, 200);
graphic.DrawLine(new Pen(Color.Blue, 3), 18, 200, 200, 18);
// Nakreslete souvislou čáru určením objektu Pero s Plným
// Kartáč s červenou barvou a dvěma bodovými strukturami
graphic.DrawLine(new Pen(new SolidBrush(Color.Red), 3),
new Point(18, 18), new Point(18, 200));
// Nakreslete souvislou čáru určením objektu Pero s Plným
// Štětec s bílou barvou a dvěma bodovými strukturami
graphic.DrawLine(new Pen(new SolidBrush(Color.Orange), 3),
new Point(200, 18), new Point(18, 18));
// Uložte všechny změny
image.Save("draw_lines.bmp");
Následuje výstup výše uvedené ukázky kódu.
Nakreslete elipsu pomocí C#
Následují kroky k nakreslení elipsy v C#.
- Nejprve vytvořte objekt třídy BmpOptions a nastavte bity na pixel pomocí vlastnosti BitsPerPixel.
- Poté přiřaďte StreamSource pomocí vlastnosti Source.
- Vytvořte nový obrázek a inicializujte jej pomocí objektu BmpOptions a výšky a šířky obrázku.
- Vytvořte objekt třídy Graphics a inicializujte jej objektem Image.
- Vyčistěte povrch obrázku trochou barvy pomocí metody Graphics.Clear().
- Nakreslete elipsu pomocí metody Graphics.DrawEllipse(Pen, Rectangle).
- Vygenerujte a uložte obrázek pomocí metody Image.Save().
Následující ukázka kódu ukazuje, jak nakreslit elipsu na obrázku v C#.
// Vytvořte BmpOptions
BmpOptions bmpCreateOptions = new BmpOptions();
bmpCreateOptions.BitsPerPixel = 32;
// Definujte vlastnost source pro instanci BmpOptions
bmpCreateOptions.Source = new StreamSource();
// Vytvoří instanci Image a volání metody create předáním
// objekt bmpCreateOptions
Image image = Image.Create(bmpCreateOptions, 500, 500);
// Vytvořte a inicializujte instanci třídy Graphics
Graphics graphic = new Graphics(image);
// Vyčistěte povrch obrázku bílou barvou
graphic.Clear(Color.White);
// Nakreslete tvar tečkované elipsy tak, že objekt Pen bude mít červenou barvu
// barvu a obklopující obdélník
graphic.DrawEllipse(new Pen(Color.Red, 3), new Rectangle(60, 40, 70, 120));
// Nakreslete tvar souvislé elipsy zadáním objektu Pen
// solid brush with blue barvu a obklopující obdélník
graphic.DrawEllipse(new Pen(new SolidBrush(Color.Blue), 3),
new Rectangle(40, 60, 120, 70));
// Uložte všechny změny
image.Save("draw_ellipse.bmp");
Následuje výstup výše uvedené ukázky kódu.
Nakreslete oblouk pomocí C#
Následují kroky k nakreslení oblouku v C#.
- Nejprve vytvořte objekt třídy BmpOptions a nastavte bity na pixel pomocí vlastnosti BitsPerPixel.
- Poté přiřaďte StreamSource pomocí vlastnosti Source.
- Vytvořte nový obrázek a inicializujte jej pomocí objektu BmpOptions a výšky a šířky obrázku.
- Vytvořte objekt třídy Graphics a inicializujte jej objektem Image.
- Vyčistěte povrch obrázku trochou barvy pomocí metody Graphics.Clear().
- Nakreslete oblouk pomocí metody Graphics.DrawArc(Pen, float x, float y, float width, float height, float startAngle, float sweepAngle).
- Vygenerujte a uložte obrázek pomocí metody Image.Save().
Následující ukázka kódu ukazuje, jak nakreslit oblouk na obrázku v C#.
// Vytvořte BmpOptions
BmpOptions bmpCreateOptions = new BmpOptions();
bmpCreateOptions.BitsPerPixel = 32;
// Definujte vlastnost source pro instanci BmpOptions
bmpCreateOptions.Source = new StreamSource();
// Vytvoří instanci Image a volání metody create předáním
// objekt bmpCreateOptions
Image image = Image.Create(bmpCreateOptions, 500, 500);
// Vytvořte a inicializujte instanci třídy Graphics
Graphics graphic = new Graphics(image);
// Vyčistěte povrch obrázku bílou barvou
graphic.Clear(Color.White);
// Nakreslete tečkovaný tvar oblouku tak, že určíte, že objekt Pero má červenou černou
// barva a souřadnice, výška, šířka, počáteční a koncové úhly
int width = 200;
int height = 300;
int startAngle = 45;
int sweepAngle = 270;
// Nakreslete oblouk na obrazovku
graphic.DrawArc(new Pen(Color.Black, 3), 0, 0, width, height, startAngle, sweepAngle);
// Uložte všechny změny
image.Save("draw_arc.bmp");
Následuje výstup výše uvedené ukázky kódu.
Nakreslete obdélník pomocí C#
Následují kroky k nakreslení obdélníku v C#.
- Nejprve vytvořte objekt třídy BmpOptions a nastavte bity na pixel pomocí vlastnosti BitsPerPixel.
- Poté přiřaďte StreamSource pomocí vlastnosti Source.
- Vytvořte nový obrázek a inicializujte jej pomocí objektu BmpOptions a výšky a šířky obrázku.
- Vytvořte objekt třídy Graphics a inicializujte jej objektem Image.
- Vyčistěte povrch obrázku trochou barvy pomocí metody Graphics.Clear().
- Nakreslete obdélník pomocí metody Graphics.DrawRectangle(Pen, Rectangle).
- Vygenerujte a uložte obrázek pomocí metody Image.Save().
Následující ukázka kódu ukazuje, jak nakreslit obdélník na obrázku v C#.
// Vytvořte BmpOptions
BmpOptions bmpCreateOptions = new BmpOptions();
bmpCreateOptions.BitsPerPixel = 32;
// Definujte vlastnost source pro instanci BmpOptions
bmpCreateOptions.Source = new StreamSource();
// Vytvoří instanci Image a volání metody create předáním
// objekt bmpCreateOptions
Image image = Image.Create(bmpCreateOptions, 500, 500);
// Vytvořte a inicializujte instanci třídy Graphics
Graphics graphic = new Graphics(image);
// Vyčistěte povrch obrázku bílou barvou
graphic.Clear(Color.White);
// Nakreslete tečkovaný obdélníkový tvar tak, že objekt Pen bude mít červenou barvu
// barva a obdélníková struktura
graphic.DrawRectangle(new Pen(Color.Red, 3),
new Rectangle(60, 40, 70, 120));
// Nakreslete tvar souvislého obdélníku určením objektu Pen
// solid brush with blue barva a obdélníková struktura
graphic.DrawRectangle(new Pen(new SolidBrush(Color.Blue), 3),
new Rectangle(40, 60, 120, 70));
// Uložte všechny změny
image.Save("draw_reactangle.bmp");
Následuje výstup výše uvedené ukázky kódu.
C# .NET Image Drawing API – Získejte bezplatnou licenci
Můžete získat bezplatnou dočasnou licenci a kreslit tvary bez omezení hodnocení.
Závěr
V tomto článku jste se naučili kreslit tvary v C#. Probrali jsme, jak programově kreslit čáry, elipsy, oblouky a obdélníky na obrázky. Poskytnuté ukázky kódu můžete snadno integrovat do svých aplikací C#.
Přečtěte si více
Další informace o rozhraní API pro zpracování obrázků .NET můžete prozkoumat pomocí dokumentace. Také se s námi můžete podělit o své dotazy prostřednictvím našeho fóra.