Графічне програмування на C#

Програмування графіки на C# може здатися легшим або складнішим, ніж ви думаєте. У цій статті ви дізнаєтеся, як програмно створювати приголомшливу векторну графіку. Незалежно від того, створюєте ви графіку як частину свого поточного проекту чи як основу власної гри чи програми! Ви навчитеся з легкістю створювати красиві візуальні ефекти. Давайте розпочнемо!

У цій статті будуть розглянуті такі теми:

  1. API програмування векторної графіки C#
  2. Структура векторної графіки
  3. Графічне програмування за допомогою C#
  4. Криві в графічному програмуванні
  5. Многокутники та прямокутники
  6. Як малювати лінії
  7. Як малювати шляхи
  8. Намалюйте область заливки

C# Vector Graphics Programming API – Безкоштовне завантаження

Щоб створити приголомшливу векторну графіку в C#, ми будемо використовувати API Aspose.Drawing for .NET. Це кросплатформна бібліотека двовимірної графіки для програмного малювання тексту, геометрії та зображень. Він дозволяє завантажувати, зберігати та маніпулювати підтримуваними форматами файлів.

Завантажте DLL API або встановіть його за допомогою NuGet.

PM> Install-Package Aspose.Drawing

Структура векторної графіки

Векторна графіка складається з геометричних фігур: ліній, кривих і контурів. Цими об’єктами з різними властивостями, такими як довжина та колір, можна керувати програмою на C#.

Графічне програмування C#

Ми можемо малювати різні типи фігур, включаючи криві, лінії, прямокутники, зафарбовані області, еліпси та багатокутники. API надає різні методи малювання цих форм. Ми можемо програмно створювати різноманітну векторну графіку, дотримуючись наведених нижче кроків.

  1. Створіть об’єкт класу Bitmap.
  2. Ініціалізація об’єкта класу Graphics з растрового зображення.
  3. Визначте об’єкт класу Pen або SolidBrush із потрібними параметрами.
  4. Використовуйте спеціальні методи класу Graphics, щоб намалювати потрібні форми.
  5. В кінці збережіть зображення.

Тепер давайте подивимося, як виконати ці дії в C#.

Криві в графічному програмуванні за допомогою C#

Ми можемо малювати дуги, кола, еліпси або замкнуті криві, використовуючи такі методи:

  • Метод DrawArc() для малювання дуги.
  • Метод DrawEllipse() для малювання еліпса.
  • Метод DrawClosedCurve() для малювання замкнутої кривої.
  • Метод DrawCurve() для малювання кривої.

Виконайте наведені нижче кроки, щоб намалювати вигнуту форму:

  1. По-перше, створіть екземпляр класу Bitmap.
  2. Потім створіть об’єкт класу Graphics за допомогою методу FromImage() із щойно створеного об’єкта Bitmap.
  3. Потім визначте об’єкт класу Pen із вказаним кольором і розміром.
  4. Після цього викличте метод DrawClosedCurve(), щоб намалювати замкнуту криву.
  5. За потреби повторіть описані вище дії, щоб додати дугу та еліпс.
  6. Нарешті, збережіть вихідне зображення за допомогою методу Save().

У наведеному нижче прикладі коду показано, як малювати вигнуті форми в C#.

// Цей приклад коду демонструє, як намалювати замкнуту криву, дугу та коло.
// Створіть растрове зображення
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Початкова графіка з Bitmap
Graphics graphics = Graphics.FromImage(bitmap);

// Визначте ручку для малювання
Pen penBlue = new Pen(Color.Blue, 4);

// Намалюйте криву
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) });

// Намалюйте дугу
Pen penRed = new Pen(Color.Red, 2);
graphics.DrawArc(penRed, 0, 0, 700, 700, 0, 180);

// Намалюйте еліпс
Pen penGreen = new Pen(Color.Green, 2);
graphics.DrawEllipse(penGreen, 10, 10, 500, 500);

// Збережіть растрове зображення у форматі PNG
bitmap.Save("C:\\Files\\Drawing\\Curves.png");
Криві в графічному програмуванні за допомогою C#

Криві в графічному програмуванні за допомогою C#

Багатокутники та прямокутники в графічному програмуванні за допомогою C#

Ми можемо малювати багатокутники та прямокутники, дотримуючись кроків, згаданих раніше. Однак нам потрібно використовувати такі методи на кроці № 4:

  • Метод DrawPolygon() для малювання багатокутника.
  • Метод DrawRectangle() для малювання прямокутника.

У наступному прикладі коду показано, як малювати багатокутники та прямокутники в C#.

// Цей приклад коду демонструє, як намалювати багатокутник і прямокутник.
// Створіть растрове зображення
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Початкова графіка з Bitmap
Graphics graphics = Graphics.FromImage(bitmap);

// Визначте ручку для малювання
Pen penBlue = new Pen(Color.Blue, 4);

// Намалюйте багатокутник
graphics.DrawPolygon(pen, new Point[] { new Point(100, 100), new Point(500, 700), new Point(900, 100) });

// Намалюйте прямокутник
Pen penRed = new Pen(Color.Red, 2);
graphics.DrawRectangle(penRed, 10, 10, 900, 700);

// Збережіть растрове зображення у форматі PNG
bitmap.Save("C:\\Files\\Drawing\\Shapes.png");
Load-an-Image-in-Bitmap-using-CSharp

Завантажте зображення в Bitmap за допомогою C#

Лінії в графічному програмуванні за допомогою C#

Подібним чином ми можемо малювати лінії, дотримуючись кроків, згаданих раніше. Однак нам потрібно використати метод DrawLine() на кроці № 4, щоб намалювати лінію.

У наступному прикладі коду показано, як малювати лінії в C#.

// Цей приклад коду демонструє, як намалювати лінію.
// Створіть растрове зображення
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Початкова графіка з Bitmap
Graphics graphics = Graphics.FromImage(bitmap);

// Визначте ручку для малювання
Pen penBlue = new Pen(Color.Blue, 4);

// Малювати лінії
graphics.DrawLine(pen, 10, 700, 500, 10);
graphics.DrawLine(pen, 500, 10, 990, 700);

// Збережіть растрове зображення у форматі PNG
bitmap.Save("C:\\Files\\Drawing\\Lines.png");
Лінії в графічному програмуванні за допомогою C#

Лінії в графічному програмуванні за допомогою C#

Шляхи в графічному програмуванні за допомогою C#

У векторній графіці контур являє собою серію гладких прямих ліній, визначених початковою та кінцевою точками разом з іншими точками. Ми можемо намалювати шлях, виконавши кроки, наведені нижче:

  1. По-перше, створіть екземпляр класу Bitmap.
  2. Потім ініціалізуйте об’єкт класу Graphics із щойно створеного об’єкта Bitmap за допомогою методу FromImage().
  3. Потім визначте об’єкт класу Pen із вказаним кольором і розміром.
  4. Далі створіть екземпляр класу GraphicsPath.
  5. Потім додайте рядки за допомогою методу AddLine().
  6. Після цього викличте метод DrawPath() з об’єктами Pen і GraphicsPath.
  7. Нарешті, збережіть вихідне зображення за допомогою методу Save().

У наведеному нижче прикладі коду показано, як намалювати шлях у C#.

// Цей приклад коду демонструє, як намалювати шлях.
// Створіть растрове зображення
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Початкова графіка з Bitmap
Graphics graphics = Graphics.FromImage(bitmap);

// Визначте ручку для малювання
Pen penBlue = new Pen(Color.Blue, 4);

// Ініціалізація графічного шляху
GraphicsPath path = new GraphicsPath();

// Додайте рядок 1
path.AddLine(100, 100, 1000, 400);

// Додайте рядок 2
path.AddLine(1000, 600, 300, 600);

// Додайте прямокутник
path.AddRectangle(new Rectangle(500, 350, 200, 400));

// Додайте еліпс
path.AddEllipse(10, 250, 450, 300);

// Намалюйте шлях
graphics.DrawPath(pen, path);

// Збережіть растрове зображення у форматі PNG
bitmap.Save("C:\\Files\\Drawing\\Shapes.png");
Шляхи в графічному програмуванні за допомогою C#

Шляхи в графічному програмуванні за допомогою C#

Заповнити область у графічному програмуванні за допомогою C#

Ми можемо намалювати область заливки, дотримуючись наведених нижче кроків:

  1. По-перше, створіть екземпляр класу Bitmap.
  2. Потім ініціалізуйте об’єкт класу Graphics із щойно створеного об’єкта Bitmap за допомогою методу FromImage().
  3. Потім створіть екземпляр класу GraphicsPath.
  4. Тим часом додайте багатокутник за допомогою методу AddPolygon().
  5. Далі створіть екземпляр класу Region.
  6. Потім додайте інший об’єкт GraphicsPath і додайте прямокутник за допомогою методу AddRectangle().
  7. Потім викличте метод Exclude(), щоб виключити внутрішній шлях із області.
  8. Потім визначте об’єкт класу SolidBrush із вказаним кольором.
  9. Після цього викличте метод FillRegion() з об’єктами SolidBrush і GraphicsPath.
  10. Нарешті, збережіть вихідне зображення за допомогою методу Save().

У наведеному нижче прикладі коду показано, як намалювати заповнену область у C#.

// Цей приклад коду демонструє, як намалювати область.
// Створіть растрове зображення
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Початкова графіка з Bitmap
Graphics graphics = Graphics.FromImage(bitmap);

// Додайте багатокутник
path.AddPolygon(new Point[] { new Point(100, 400), new Point(500, 100), new Point(900, 400), new Point(500, 700) });

// Ініціалізація регіону
Region region = new Region(path);

// Внутрішній графічний шлях
GraphicsPath innerPath = new GraphicsPath();

// Додайте прямокутник
innerPath.AddRectangle(new Rectangle(300, 300, 400, 200));

// Виключити внутрішній шлях
region.Exclude(innerPath);

// Визначте тверду кисть
Brush brush = new SolidBrush(Color.Blue);

// Область заливки
graphics.FillRegion(brush, region);

// Збережіть растрове зображення у форматі PNG
bitmap.Save("C:\\Files\\Drawing\\Lines.png");
Заповнити область у графічному програмуванні за допомогою C#

Заповнити область у графічному програмуванні за допомогою C#

Отримайте безкоштовну тимчасову ліцензію

Ви можете отримати безкоштовну тимчасову ліцензію, щоб спробувати Aspose.Drawing for .NET без обмежень оцінювання.

Висновок

У цій статті ми дізналися, як:

  • створити новий растровий малюнок;
  • малювати прямокутник, еліпс тощо на растровому зображенні;
  • малювати лінії та шляхи;
  • зберегти растрове зображення як PNG у C#.

Окрім графічного програмування на C#, ви можете дізнатися більше про Aspose.Drawing for .NET за допомогою документації і дослідити різні функції, які підтримує API. У разі будь-яких неясностей зв’яжіться з нами на нашому безкоштовному форумі підтримки.

Дивись також