Vytváření, načítání, vyplňování a kreslení bitmapy v C#

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:

  1. C# API pro vytváření, načítání, vyplňování a kreslení bitmapy
  2. Vytvořit novou bitmapu od nuly
  3. Vytvořit bitmapu z Byte Array
  4. Uložit bitmapu jako soubor obrázku
  5. Nakreslete tvary na bitmapu
  6. Nakreslit text na bitmapový obrázek
  7. Vyplnit bitmapu plnou barvou
  8. Načíst obrázek v bitmapě
  9. 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ů:

  1. Nejprve vytvořte novou bitmapu pomocí třídy Bitmap se zadanou velikostí a formátem.
  2. Dále vytvořte nový objekt Graphics z objektu Bitmap pomocí metody FromImage().
  3. Poté inicializujte objekt třídy Pen se zadanou barvou a velikostí.
  4. Poté zavolejte metodu DrawEllipse() a nakreslete Elipsu o zadané velikosti.
  5. 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-novou-bitmapu-v-CSharp

Vytvořte novou bitmapu v C#

Vytvořte bitmapu z Byte Array v C#

Bitmapu můžeme vytvořit z bajtů toku paměti podle následujících kroků:

  1. Načtěte soubor obrázku do bajtového pole.
  2. Vytvořte novou instanci MemoryStream pomocí objektu bajtového pole.
  3. Vytvořte novou bitmapu pomocí třídy Bitmap s objektem MemoryStream.
  4. 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ů:

  1. Nejprve vytvořte novou bitmapu pomocí třídy Bitmap se zadanou velikostí.
  2. Dále vytvořte nový objekt Graphics z objektu Bitmap pomocí metody FromImage().
  3. Poté definujte objekt třídy Font s požadovanou rodinou písem, stylem a velikostí.
  4. Mezitím inicializujte objekt SolidBrush se zadanou barvou.
  5. Poté zavolejte metodu DrawString() s textem k zobrazení, objekty Font a Brush jako argumenty.
  6. 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);
C# Kreslit text na bitmapu

C# Kreslit text na bitmapu

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ů:

  1. Nejprve vytvořte novou bitmapu pomocí třídy Bitmap se zadanou velikostí.
  2. Dále vytvořte nový objekt Graphics z objektu Bitmap pomocí metody FromImage().
  3. Poté inicializujte objekt třídy Rectangle se zadaným umístěním a velikostí.
  4. Poté zavolejte metodu FillRectangle() s barvou štětce a obdélníkem.
  5. 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");
C# Kreslit na bitmapu a vyplnit obdélníkem

C# Nakreslete obdélník na bitmapu a vyplňte barvou

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ů:

  1. Nejprve načtěte obrázek pomocí třídy Bitmap.
  2. Dále vytvořte novou bitmapu pomocí třídy Bitmap se zadanou velikostí.
  3. Poté pomocí metody FromImage() vytvořte nový objekt Graphics z nově vytvořeného objektu Bitmap.
  4. Poté zavolejte metodu DrawImage() se souřadnicemi obrázku a umístění jako argumenty.
  5. 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");
Načtěte-obrázek-v-Bitmapě-pomocí-CSharp

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

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ů:

  1. Načtěte existující obrázek pomocí třídy Bitmap.
  2. Vytvořte novou bitmapu pomocí třídy Bitmap s načteným obrázkem a zadanou velikostí.
  3. 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");
Jak změnit velikost obrázku pomocí bitmapy v C#

Změnit velikost existujícího obrázku 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;
  • 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.

Viz také