Grafické programování v C#

Grafické programování v C# se může zdát jednodušší nebo těžší, než si myslíte. V tomto článku se dozvíte, jak programově vytvářet úžasnou vektorovou grafiku. Ať už vytváříte grafiku jako součást svého aktuálního projektu nebo jako základ své vlastní hry či aplikace! Naučíte se snadno vytvářet krásné vizuály. Začněme!

Tento článek bude obsahovat následující témata:

  1. C# Vector Graphics Programming API
  2. Struktura vektorové grafiky
  3. Grafické programování pomocí C#
  4. Křivky v grafickém programování
  5. Mnohoúhelníky a obdélníky
  6. Jak kreslit čáry
  7. Jak kreslit cesty
  8. Nakreslete oblast výplně

C# Vector Graphics Programming API – ke stažení zdarma

K vytvoření úžasné vektorové grafiky v C# použijeme Aspose.Drawing for .NET API. Jedná se o multiplatformní 2D grafickou knihovnu pro programové kreslení textu, geometrií a obrázků. Umožňuje načítání, ukládání a manipulaci s podporované formáty souborů.

Prosím buď stáhněte si DLL API, nebo jej nainstalujte pomocí NuGet.

PM> Install-Package Aspose.Drawing

Struktura vektorové grafiky

Vektorová grafika se skládá z geometrických tvarů: čar, křivek a cest. S těmito objekty s různými vlastnostmi, jako je délka a barva, lze manipulovat pomocí programu C#.

Grafické programování v C#

Můžeme malovat nebo kreslit různé typy tvarů včetně křivek, čar, obdélníků, vyplněných oblastí, elips a mnohoúhelníků. Rozhraní API poskytuje různé metody pro kreslení těchto tvarů. Můžeme vytvořit řadu různých vektorových grafik programově podle následujících kroků:

  1. Vytvořte objekt třídy Bitmap.
  2. Inicializujte objekt třídy Graphics z bitmapy.
  3. Definujte objekt třídy Pen nebo SolidBrush s požadovanými parametry.
  4. Použijte metodu(y) specifické pro tvar třídy Graphics k nakreslení požadovaného tvaru(ů).
  5. Nakonec obrázek uložte.

Nyní se podívejme, jak provést tyto kroky v C#.

Křivky v grafickém programování pomocí C#

Oblouky, kružnice, elipsy nebo uzavřené křivky můžeme kreslit pomocí následujících metod:

  • Metoda DrawArc() pro nakreslení oblouku.
  • Metoda DrawEllipse() pro nakreslení elipsy.
  • Metoda DrawClosedCurve() pro nakreslení uzavřené křivky.
  • Metoda DrawCurve() pro nakreslení křivky.

Chcete-li nakreslit zakřivený tvar, postupujte podle následujících kroků:

  1. Nejprve vytvořte instanci třídy Bitmap.
  2. Dále vytvořte objekt třídy Graphics pomocí metody FromImage() z nově vytvořeného objektu Bitmap.
  3. Poté definujte objekt třídy Pen se zadanou barvou a velikostí.
  4. Poté zavolejte metodu DrawClosedCurve() a nakreslete uzavřenou křivku.
  5. Volitelně opakujte výše uvedené kroky a přidejte oblouk a elipsu.
  6. Nakonec výstupní obrázek uložte pomocí metody Save().

Následující ukázka kódu ukazuje, jak malovat zakřivené tvary v C#.

// Tento příklad kódu ukazuje, jak nakreslit uzavřenou křivku, oblouk a kružnici.
// Vytvořte bitmapu
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Inicializace grafiky z bitmapy
Graphics graphics = Graphics.FromImage(bitmap);

// Definujte pero, které chcete kreslit
Pen penBlue = new Pen(Color.Blue, 4);

// Nakreslete křivku
graphics.DrawClosedCurve(penBlue, new Point[] { new Point(10, 700), new Point(250, 500), new Point(500, 10), new Point(750, 500), new Point(990, 700) });

// Nakreslete oblouk
Pen penRed = new Pen(Color.Red, 2);
graphics.DrawArc(penRed, 0, 0, 700, 700, 0, 180);

// Nakreslete elipsu
Pen penGreen = new Pen(Color.Green, 2);
graphics.DrawEllipse(penGreen, 10, 10, 500, 500);

// Uložte bitmapu jako PNG
bitmap.Save("C:\\Files\\Drawing\\Curves.png");
Křivky v grafickém programování pomocí C#

Křivky v grafickém programování pomocí C#

Polygony a obdélníky v grafickém programování pomocí C#

Můžeme kreslit mnohoúhelníky a obdélníky podle výše uvedených kroků. V kroku č. 4 však musíme použít následující metody:

  • Metoda DrawPolygon() pro kreslení mnohoúhelníku.
  • Metoda DrawRectangle() pro nakreslení obdélníku.

Následující ukázka kódu ukazuje, jak kreslit mnohoúhelníky a obdélníky v C#.

// Tento příklad kódu ukazuje, jak nakreslit mnohoúhelník a obdélník.
// Vytvořte bitmapu
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Inicializace grafiky z bitmapy
Graphics graphics = Graphics.FromImage(bitmap);

// Definujte pero, které chcete kreslit
Pen penBlue = new Pen(Color.Blue, 4);

// Nakreslete mnohoúhelník
graphics.DrawPolygon(pen, new Point[] { new Point(100, 100), new Point(500, 700), new Point(900, 100) });

// Nakreslete obdélník
Pen penRed = new Pen(Color.Red, 2);
graphics.DrawRectangle(penRed, 10, 10, 900, 700);

// Uložte bitmapu jako PNG
bitmap.Save("C:\\Files\\Drawing\\Shapes.png");
Načtěte-obrázek-v-Bitmapě-pomocí-CSharp

Načtení obrázku v bitmapě pomocí C#

Řádky v grafickém programování pomocí C#

Podobně můžeme kreslit čáry podle výše uvedených kroků. K nakreslení čáry však musíme použít metodu DrawLine() v kroku č. 4.

Následující ukázka kódu ukazuje, jak kreslit čáry v C#.

// Tento příklad kódu ukazuje, jak nakreslit čáru.
// Vytvořte bitmapu
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Inicializace grafiky z bitmapy
Graphics graphics = Graphics.FromImage(bitmap);

// Definujte pero, které chcete kreslit
Pen penBlue = new Pen(Color.Blue, 4);

// Kreslit čáry
graphics.DrawLine(pen, 10, 700, 500, 10);
graphics.DrawLine(pen, 500, 10, 990, 700);

// Uložte bitmapu jako PNG
bitmap.Save("C:\\Files\\Drawing\\Lines.png");
Řádky v grafickém programování pomocí C#

Řádky v grafickém programování pomocí C#

Cesty v grafickém programování pomocí C#

Ve vektorové grafice cesta představuje řadu hladkých přímých čar definovaných počátečním a koncovým bodem spolu s dalšími body. Cestu můžeme nakreslit podle následujících kroků:

  1. Nejprve vytvořte instanci třídy Bitmap.
  2. Dále inicializujte objekt třídy Graphics z nově vytvořeného objektu Bitmap pomocí metody FromImage().
  3. Poté definujte objekt třídy Pen se zadanou barvou a velikostí.
  4. Dále vytvořte instanci třídy GraphicsPath.
  5. Poté přidejte řádky pomocí metody AddLine().
  6. Poté zavolejte metodu DrawPath() s objekty Pen a GraphicsPath.
  7. Nakonec výstupní obrázek uložte pomocí metody Save().

Následující ukázka kódu ukazuje, jak nakreslit cestu v C#.

// Tento příklad kódu ukazuje, jak nakreslit cestu.
// Vytvořte bitmapu
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Inicializace grafiky z bitmapy
Graphics graphics = Graphics.FromImage(bitmap);

// Definujte pero, které chcete kreslit
Pen penBlue = new Pen(Color.Blue, 4);

// Inicializujte grafickou cestu
GraphicsPath path = new GraphicsPath();

// Přidat řádek 1
path.AddLine(100, 100, 1000, 400);

// Přidat řádek 2
path.AddLine(1000, 600, 300, 600);

// Přidat obdélník
path.AddRectangle(new Rectangle(500, 350, 200, 400));

// Přidejte Elipsu
path.AddEllipse(10, 250, 450, 300);

// Nakreslete cestu
graphics.DrawPath(pen, path);

// Uložte bitmapu jako PNG
bitmap.Save("C:\\Files\\Drawing\\Shapes.png");
Cesty v grafickém programování pomocí C#

Cesty v grafickém programování pomocí C#

Vyplňte oblast v grafickém programování pomocí C#

Oblast výplně můžeme nakreslit podle následujících kroků:

  1. Nejprve vytvořte instanci třídy Bitmap.
  2. Dále inicializujte objekt třídy Graphics z nově vytvořeného objektu Bitmap pomocí metody FromImage().
  3. Potom vytvořte instanci třídy GraphicsPath.
  4. Mezitím přidejte polygon pomocí metody AddPolygon().
  5. Dále vytvořte instanci třídy Region.
  6. Poté přidejte další objekt GraphicsPath a pomocí metody AddRectangle() přidejte obdélník.
  7. Dále zavolejte metodu Exclude() k vyloučení vnitřní cesty z oblasti.
  8. Poté definujte objekt třídy SolidBrush se zadanou barvou.
  9. Poté zavolejte metodu FillRegion() s objekty SolidBrush a GraphicsPath.
  10. Nakonec uložte výstupní obraz pomocí metody Save().

Následující ukázka kódu ukazuje, jak nakreslit vyplněnou oblast v C#.

// Tento příklad kódu ukazuje, jak nakreslit oblast.
// Vytvořte bitmapu
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Inicializace grafiky z bitmapy
Graphics graphics = Graphics.FromImage(bitmap);

// Přidejte mnohoúhelník
path.AddPolygon(new Point[] { new Point(100, 400), new Point(500, 100), new Point(900, 400), new Point(500, 700) });

// Inicializujte oblast
Region region = new Region(path);

// Vnitřní grafická cesta
GraphicsPath innerPath = new GraphicsPath();

// Přidejte obdélník
innerPath.AddRectangle(new Rectangle(300, 300, 400, 200));

// Vyloučit vnitřní cestu
region.Exclude(innerPath);

// Definujte pevný kartáč
Brush brush = new SolidBrush(Color.Blue);

// Vyplňte oblast
graphics.FillRegion(brush, region);

// Uložte bitmapu jako PNG
bitmap.Save("C:\\Files\\Drawing\\Lines.png");
Vyplňte oblast v grafickém programování pomocí C#

Vyplňte oblast v grafickém programování pomocí C#

Získejte bezplatnou dočasnou licenci

Můžete získat bezplatnou dočasnou licenci a vyzkoušet Aspose.Drawing for .NET bez omezení hodnocení.

Závěr

V tomto článku jsme se naučili, jak:

  • vytvořit novou bitmapu;
  • kreslit obdélník, elipsu atd. na bitmapu;
  • kreslit čáry a cesty;
  • uložit bitmapový obrázek jako PNG v C#.

Kromě grafického programování v C# se můžete dozvědět více o Aspose.Drawing pro .NET pomocí dokumentace a prozkoumat různé funkce podporované API. V případě jakýchkoliv nejasností nás neváhejte kontaktovat na našem bezplatném fóru podpory.

Viz také