Vytváření realistických obrázků je náročné, protože vyžaduje správnou kombinaci barev, textur a tloušťky čar. Aliasing je problém, který se vyskytuje při vytváření obrázků souvisejících s počítačovou grafikou. Abychom vytvořili realistické obrázky, musíme provést antialiasing, abychom vyhladili zubaté čáry. Antialiasing je technika, díky které bude grafika na obrazovce vypadat hladší. Aplikuje algoritmus na okraje objektu, aby byly hladší a méně zubaté. Existují různé typy technik vyhlazování, které lze použít v závislosti na typu umění, se kterým pracujete. Aliasing nastane, když je mezi sousedními pixely vysoký kontrast. To může způsobit zubaté čáry a křivky schodišť v místech, kde se čáry setkávají nebo kříží. Tento článek je o antialiasingu v počítačové grafice pomocí C#. Naučíme se používat Anti-aliasing s čarami, křivkami a textem v C#.
V tomto článku se budeme zabývat následujícími tématy:
C# Computer Graphics Antialiasing API – ke stažení zdarma
Pro implementaci antialiasingu v C# budeme používat API Aspose.Drawing for .NET. Tato multiplatformní 2D grafická knihovna umožňuje programově kreslit text, geometrii a obrázky. Kromě toho můžete načítat, ukládat a manipulovat podporované formáty souborů.
Prosím buď stáhněte si DLL rozhraní API, nebo jej nainstalujte pomocí NuGet.
PM> Install-Package Aspose.Drawing
Antialiasing pomocí čar a křivek v C#
Můžeme snadno kreslit čáry a křivky s antialiasingem v C# podle následujících kroků:
- Nejprve vytvořte instanci třídy Bitmap.
- Dále vytvořte objekt třídy Graphics pomocí metody Graphics.FromImage() s objektem Bitmap.
- Poté nastavte režim vyhlazování na AntiAlias.
- Mezitím inicializujte objekt třídy Pen se zadanou barvou a velikostí.
- Poté pomocí příslušných metod nakreslete požadovanou čáru, křivku nebo jiné objekty.
- Nakonec zavolejte metodu Save() k uložení výstupního obrazu do zadané cesty obrazu.
Následující ukázka kódu ukazuje, jak implementovat vyhlazování s čarami a křivkami v C#.
// Tento příklad kódu ukazuje, jak implementovat vyhlazování s čarami a křivkami.
// Vytvořit bitmapu
Bitmap bitmap = new Bitmap(500, 500, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
// Inicializujte objekt Graphics
Graphics graphics = Graphics.FromImage(bitmap);
// Nastavte režim vyhlazování
graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
graphics.Clear(Color.White);
// Inicializujte pero
Pen pen = new Pen(Color.Black, 5);
// Nakreslete elipsu
graphics.DrawEllipse(pen, 10, 10, 980, 780);
// Nakreslete křivku
graphics.DrawCurve(pen, new Point[] { new Point(10, 700), new Point(250, 500), new Point(500, 10), new Point(750, 500), new Point(990, 700) });
// Nakresli čáru
graphics.DrawLine(pen, 20, 20, 980, 780);
// Uložte obrázek
bitmap.Save("C:\\Files\\Antialiasing.png");
Antialiasing s textem v C#
Podobně můžeme použít antialiasing s textem v C# podle následujících kroků:
- Nejprve vytvořte instanci třídy Bitmap.
- Dále vytvořte objekt třídy Graphics pomocí metody Graphics.FromImage() s objektem Bitmap.
- Potom inicializujte objekt třídy Brush se zadanou barvou.
- Mezitím nastavte TextRenderingHint na AntiAlias.
- Poté napište text pomocí metody DrawString().
- Nakonec zavolejte metodu Save() k uložení výstupního obrazu do zadané cesty obrazu.
Následující ukázka kódu ukazuje, jak implementovat vyhlazování s textem v C#.
// Tento příklad kódu ukazuje, jak implementovat vyhlazování s čarami a křivkami.
// Vytvořit bitmapu
Bitmap bitmap = new Bitmap(500, 500, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
// Inicializujte objekt Graphics
Graphics graphics = Graphics.FromImage(bitmap);
// Nastavte režim vyhlazování
graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
graphics.Clear(Color.White);
// Definujte rodinu písem
FontFamily fontFamily = new FontFamily("Arial");
// Definujte písmo
Font font = new Font(fontFamily, 30, FontStyle.Regular, GraphicsUnit.Pixel);
// Inicializujte pevný štětec
SolidBrush solidBrush = new SolidBrush(Color.FromArgb(255, 0, 0, 255));
// Nakreslete řetězec s nápovědou pro vykreslování textu jako SingleBitPerPixel
graphics.TextRenderingHint = TextRenderingHint.SingleBitPerPixel;
graphics.DrawString("This is Single Bit Per Pixel String!", font, solidBrush, new PointF(10, 10));
// Nakreslete řetězec s nápovědou pro vykreslování textu jako AntiAlias
graphics.TextRenderingHint = TextRenderingHint.AntiAlias;
graphics.DrawString("This is Anti Alias String!", font, solidBrush, new PointF(10, 60));
// Uložte obrázek
bitmap.Save("C:\\Files\\AntialiasingText.png");
Získejte bezplatnou dočasnou licenci
Můžete získat bezplatnou dočasnou licenci a vyzkoušet Aspose.Drawing pro .NET bez omezení hodnocení.
Závěr
V tomto článku jsme se naučili, jak implementovat techniku antialiasingu programově v C#. Kromě toho 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ýchkoli nejasností nás neváhejte kontaktovat na našem bezplatném fóru podpory.