Программирование графики на C#

Программирование графики на C# может показаться проще или сложнее, чем вы думаете. В этой статье вы узнаете, как программно создавать потрясающую векторную графику. Независимо от того, создаете ли вы графику как часть текущего проекта или как основу для собственной игры или приложения! Вы научитесь легко создавать красивые визуальные эффекты. Давайте начнем!

В этой статье должны быть раскрыты следующие темы:

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

C# API для программирования векторной графики — Скачать бесплатно

Для создания великолепной векторной графики на C# мы будем использовать API Aspose.Drawing for .NET. Это кроссплатформенная библиотека 2D-графики для программного рисования текста, геометрии и изображений. Он позволяет загружать, сохранять и управлять поддерживаемыми форматами файлов.

Пожалуйста, загрузите 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);

// Начальная графика из растрового изображения
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);

// Начальная графика из растрового изображения
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");
Загрузка изображения в растровое изображение с помощью CSharp

Загрузите изображение в растровое изображение с помощью С#

Линии в графическом программировании с использованием C#

Точно так же мы можем рисовать линии, следуя шагам, упомянутым ранее. Однако нам нужно использовать метод DrawLine() на шаге № 4, чтобы нарисовать линию.

В следующем примере кода показано, как рисовать линии на C#.

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

// Начальная графика из растрового изображения
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);

// Начальная графика из растрового изображения
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);

// Начальная графика из растрового изображения
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 для .NET без ограничений пробной версии.

Вывод

В этой статье мы узнали, как:

  • создать новый битмап;
  • рисовать прямоугольник, эллипс и т. д. на растровом изображении;
  • рисовать линии и пути;
  • сохранить растровое изображение как PNG в C#.

Помимо программирования графики на C#, вы можете узнать больше об Aspose.Drawing для .NET с помощью документации и изучить различные функции, поддерживаемые API. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на нашем бесплатном форуме поддержки.

Смотрите также