Bitmapa se používá k vytváření a ukládání počítačové grafiky. Bitmapové obrázky jsou široce používány na webových stránkách a digitálních zařízeních, jako jsou fotoaparáty, chytré telefony atd. Nejběžnější typy bitmapových grafických souborů jsou BMP, GIF, PNG a JPEG. V tomto článku se naučíme, jak vytvořit bitmapu v C#.
Tento článek bude obsahovat následující témata:
- C# API pro vytváření, načítání, vyplňování a kreslení bitmapy
- Vytvořit novou bitmapu od nuly
- Vytvořit bitmapu z Byte Array
- Uložit bitmapu jako soubor obrázku
- Nakreslete tvary na bitmapu
- Nakreslit text na bitmapový obrázek
- Vyplnit bitmapu plnou barvou
- Načíst obrázek v bitmapě
- Změnit velikost existujícího obrázku pomocí bitmapy
C# API pro vytváření, načítání, vyplňování a kreslení bitmap – ke stažení zdarma
K vytvoření bitmapy 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 rozhraní API, nebo jej nainstalujte pomocí NuGet.
PM> Install-Package Aspose.Drawing
Vytvořte novou bitmapu v C#
Novou bitmapu můžeme vytvořit od začátku podle následujících kroků:
- Nejprve vytvořte novou bitmapu pomocí třídy Bitmap se zadanou velikostí a formátem.
- Dále vytvořte nový objekt Graphics z objektu Bitmap pomocí metody FromImage().
- Poté inicializujte objekt třídy Pen se zadanou barvou a velikostí.
- Poté zavolejte metodu DrawEllipse() a nakreslete Elipsu o zadané velikosti.
- Nakonec výstupní obrázek uložte pomocí metody Save().
Následující ukázka kódu ukazuje, jak vytvořit novou bitmapu v C#.
// Tento příklad kódu ukazuje, jak vytvořit novou bitmapu programově v C#.
// Inicializujte bitmapový objekt
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
// Vytvořte novou grafiku
Graphics graphics = Graphics.FromImage(bitmap);
// Inicializujte pero
Pen pen = new Pen(Color.Red, 5);
// Nakreslete obdélník
graphics.DrawEllipse(pen, new Rectangle(0, 0, 700, 700));
// Uložte soubor
bitmap.Save(@"C:\Files\Drawings\output.png");
Vytvořte bitmapu z Byte Array v C#
Bitmapu můžeme vytvořit z bajtů toku paměti podle následujících kroků:
- Načtěte soubor obrázku do bajtového pole.
- Vytvořte novou instanci MemoryStream pomocí objektu bajtového pole.
- Vytvořte novou bitmapu pomocí třídy Bitmap s objektem MemoryStream.
- Nakonec uložte obrázek pomocí metody Save().
Následující ukázka kódu ukazuje, jak vytvořit bitmapu z Byte Array pomocí MemoryStream v C#.
// Tento příklad kódu ukazuje, jak vytvořit novou bitmapu z bajtů paměťového proudu v C#.
// Načtěte obrázek a přečtěte si všechny bajty
var file = File.ReadAllBytes(@"C:\Files\Drawings\sample.jpg");
// Vytvořit paměťový stream
MemoryStream stream = new MemoryStream(file);
// Vytvořte novou bitmapu
Bitmap bitmap = new Bitmap(stream);
// Uložte soubor
bitmap.Save(@"C:\Files\Drawings\output.jpg");
C# Uložit bitmapu do souboru
Bitmapový obrázek můžeme uložit do souboru v různých podporovaných formátech podle výše uvedených kroků. Stačí však zmínit požadovanou příponu formátu souboru pro ukládání při ukládání souboru obrázku pomocí metody Save(string filename, ImageFormat format) v posledním kroku.
- Uložte bitmapu jako soubor BMP
bitmap.Save(@"C:\Files\output.bmp", ImageFormat.Bmp);
- Uložte bitmapu jako soubor PNG
bitmap.Save(@"C:\Files\output.png", ImageFormat.Png);
- Uložte bitmapu jako soubor JPG
bitmap.Save(@"C:\Files\output.jpg", ImageFormat.Jpeg);
- Uložte bitmapu jako soubor GIF
bitmap.Save(@"C:\Files\output.gif", ImageFormat.Gif);
C# Draw on Bitmap
Podle výše uvedených kroků můžeme na bitmapu kreslit různé tvary a obrázky. K nakreslení požadovaných tvarů však stačí použít metody specifické pro daný tvar.
Pomocí poskytnutých specifických metod pro kreslení na bitmapu můžeme nakreslit následující tvary:
- Oblouk: Oblouk můžeme nakreslit pomocí metody DrawArc().
- Bezier: Můžeme nakreslit Béziera pomocí metody DrawBezier().
- Řada Bézierových splajnů: Pomocí metody DrawBeziers() můžeme nakreslit řadu Bezierových splajnů.
- Křivka: Zakřivený tvar můžeme nakreslit pomocí metody DrawCurve().
- ClosedCurve: Uzavřenou křivku můžeme nakreslit pomocí metody DrawClosedCurve().
- Elipsa: Elipsu můžeme nakreslit pomocí metody DrawEllipse().
- Čára: Čáru můžeme nakreslit pomocí metody DrawLine().
- Řada čar: Pomocí metody DrawLines() můžeme nakreslit řadu čar.
- Cesta: Cestu můžeme nakreslit pomocí metody DrawPath().
- Koláč: Koláč můžeme nakreslit pomocí metody DrawPie().
- Polygon: Polygon můžeme nakreslit pomocí metody DrawPolygon().
- Obdélník: Obdélník můžeme nakreslit pomocí metody DrawRectangle().
- Řada obdélníků: Pomocí metody DrawRectangles() můžeme nakreslit řadu obdélníků.
Obrázky můžeme kreslit na bitmapu pomocí následujících metod:
- Ikona: Pomocí metody DrawIcon() můžeme nakreslit obrázek reprezentovaný zadanou ikonou v oblasti určené strukturou Rectangle.
- Obrázek: Pomocí metody DrawImage() můžeme nakreslit libovolný zadaný obrázek.
C# Kreslit text na bitmapu
Na bitmapu můžeme nakreslit libovolný řetězec podle následujících kroků:
- Nejprve vytvořte novou bitmapu pomocí třídy Bitmap se zadanou velikostí.
- Dále vytvořte nový objekt Graphics z objektu Bitmap pomocí metody FromImage().
- Poté definujte objekt třídy Font s požadovanou rodinou písem, stylem a velikostí.
- Mezitím inicializujte objekt SolidBrush se zadanou barvou.
- Poté zavolejte metodu DrawString() s textem k zobrazení, objekty Font a Brush jako argumenty.
- Nakonec výstupní obrázek uložte pomocí metody Save().
Následující ukázka kódu ukazuje, jak nakreslit text na bitmapu v C#.
// Tento příklad kódu ukazuje, jak nakreslit text na novou bitmapu programově v C#.
// Inicializujte bitmapový objekt
Bitmap bitmap = new Bitmap(500,200);
// Vytvořte novou grafiku
Graphics graphics = Graphics.FromImage(bitmap);
// Inicializujte písmo
var font = new Font(FontFamily.GenericSerif, 40f, FontStyle.Bold);
// Inicializujte štětec
var brush = new SolidBrush(Color.Red);
// Nakreslete obdélník
graphics.DrawString("Welcome to Bitmap!", font, brush, 10, 20);
// Uložte soubor
bitmap.Save(@"C:\Files\Drawings\output.png", ImageFormat.Png);
Vyplňte bitmapu plnou barvou v C#
Bitmapu můžeme vyplnit plnou barvou pomocí vyplněného obdélníku a uložit ji do nové bitmapy podle následujících kroků:
- Nejprve vytvořte novou bitmapu pomocí třídy Bitmap se zadanou velikostí.
- Dále vytvořte nový objekt Graphics z objektu Bitmap pomocí metody FromImage().
- Poté inicializujte objekt třídy Rectangle se zadaným umístěním a velikostí.
- Poté zavolejte metodu FillRectangle() s barvou štětce a obdélníkem.
- Nakonec výstupní obrázek uložte pomocí metody Save().
Následující ukázka kódu ukazuje, jak vyplnit bitmapu plnou barvou pomocí obdélníku v C#.
// Tento příklad kódu ukazuje, jak vytvořit novou bitmapu s vyplněným obdélníkem v C#.
// Inicializujte bitmapu se zadanou velikostí
Bitmap bitmap = new Bitmap(500, 500);
// Vytvořte novou grafiku
Graphics graph = Graphics.FromImage(bitmap);
// Definujte obdélník
Rectangle ImageSize = new Rectangle(0, 0, 500, 500);
// Nakreslete vyplněný obdélník
graph.FillRectangle(Brushes.Gray, ImageSize);
// Uložte soubor
bitmap.Save(@"C:\Files\Drawings\output.png");
Načtení obrázku v bitmapě pomocí C#
Můžeme také načíst existující obrázek v bitmapě a uložit jej jako novou bitmapu podle následujících kroků:
- Nejprve načtěte obrázek pomocí třídy Bitmap.
- Dále vytvořte novou bitmapu pomocí třídy Bitmap se zadanou velikostí.
- Poté pomocí metody FromImage() vytvořte nový objekt Graphics z nově vytvořeného objektu Bitmap.
- Poté zavolejte metodu DrawImage() se souřadnicemi obrázku a umístění jako argumenty.
- Nakonec výstupní obrázek uložte pomocí metody Save().
Následující ukázka kódu ukazuje, jak načíst obrázek v bitmapě pomocí C#.
// Tento příklad kódu ukazuje, jak načíst obrázek do bitmapy a uložit jako novou bitmapu.
// Načíst obrázek:
Bitmap image = new Bitmap(@"C:\Files\Drawings\sample.jpg");
// Inicializujte bitmapu se zadanou velikostí
Bitmap bitmap = new Bitmap(1000, 1000);
// Vytvořte novou grafiku
Graphics graphics = Graphics.FromImage(bitmap);
// Nakreslete obrázek na určeném místě
graphics.DrawImage(image, 10, 10);
// Uložte soubor
bitmap.Save(@"C:\Files\Drawings\output.png");
Jak změnit velikost obrázku pomocí bitmapy v C#
Můžeme načíst a změnit velikost existujícího obrázku v bitmapě a uložit jej jako novou bitmapu podle následujících kroků:
- Načtěte existující obrázek pomocí třídy Bitmap.
- Vytvořte novou bitmapu pomocí třídy Bitmap s načteným obrázkem a zadanou velikostí.
- Nakonec výstupní obrázek uložte pomocí metody Save().
Následující ukázka kódu ukazuje, jak změnit velikost existujícího obrázku a uložit jej jako novou bitmapu v C#.
// Tento příklad kódu ukazuje, jak vytvořit změnu velikosti existujícího obrázku a vytvořit novou bitmapu v C#.
// Načíst obrázek:
Bitmap image = new Bitmap(@"C:\Files\Drawings\sample.jpg");
// Vytvořte novou bitmapu poloviční velikosti načteného obrázku:
Bitmap bitmap = new Bitmap(image, (int)(image.Width * 0.5), (int)(image.Height * 0.5));
// Uložte soubor
bitmap.Save(@"C:\Files\Drawings\output.jpg");
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;
- načíst existující obrázek;
- změnit velikost existujícího obrázku a vytvořit novou bitmapu s novou velikostí;
- uložit bitmapový obrázek z MemoryStreamu nebo bajtového pole do souboru;
- nastavit šířku a výšku bitmapy v C#.
Kromě vytvoření nové bitmapy v C# se můžete dozvědět více o Aspose.Drawing pro .NET pomocí documentation 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.