Рисовать графику с помощью C#

В моей предыдущей статье я дал вам обзор нашего .NET Graphics API — Aspose.Drawing for .NET. Наряду с этим мы увидели, как создавать изображения с нуля или рисовать графику на существующих изображениях с помощью C#. В этой статье мы сделаем шаг вперед и узнаем, как создавать 2D-чертежи, рисуя различные графические объекты в приложениях .NET, таких как веб-приложение ASP.NET, приложение Windows и т. д.

Ниже представлена векторная графика, которую мы собираемся рисовать на наших рисунках с помощью .NET Graphics API.

Прежде чем мы начнем, убедитесь, что Aspose.Drawing for .NET установлен в вашем приложении .NET. О способах установки можно прочитать в этом посте.

Создание чертежа с нуля с помощью C#

Прежде всего, давайте посмотрим, как создать пустой рисунок и сохранить его как изображение PNG. Шаги просты как пирог.

  • Создайте новый объект Bitmap.
  • Сохраните рисунок в формате PNG методом Bitmap.Save(string).

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

// Пример создания нового рисунка на C# .NET и рендеринга в формате PNG. 
// См. https://github.com/aspose-drawing/Aspose.Drawing-for-.NET и https://docs.aspose.com/drawing/net/ для получения дополнительных примеров.
// Создать новый рисунок
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);
// Сохранить рисунок
bitmap.Save(RunExamples.GetDataDir() + @"drawing.png");

Нарисуйте дугу в рисовании с помощью C#

Давайте посмотрим, как нарисовать дугу на чертеже. Ниже приведены шаги для выполнения этой операции.

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

// Полные примеры и файлы данных см. на странице https://github.com/aspose-drawing/Aspose.Drawing-for-.NET.

using System.Drawing;

Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);

Pen pen = new Pen(Color.Blue, 2);
graphics.DrawArc(pen, 0, 0, 700, 700, 0, 180);

bitmap.Save("DrawArc.png");
Нарисуйте дугу

Нарисуйте сплайн Безье в рисовании с помощью C#

Ниже приведены шаги для рисования сплайна Безье на чертеже.

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

// Полные примеры и файлы данных см. на странице https://github.com/aspose-drawing/Aspose.Drawing-for-.NET.

using System.Drawing;

Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);

Pen pen = new Pen(Color.Blue, 2);
PointF p1 = new PointF(0, 0);   // start point
PointF c1 = new PointF(0, 800);   // first control point
PointF c2 = new PointF(1000, 0);  // second control point
PointF p2 = new PointF(1000, 800);  // end point
graphics.DrawBezier(pen, p1, c1, c2, p2);

bitmap.Save("DrawBezierSpline.png");
Нарисовать сплайн Безье

Добавьте кардинальный сплайн в чертеж с помощью C#

Используйте следующие шаги, чтобы нарисовать кардинальный сплайн с помощью нашего .NET Graphics API.

  • Создайте экземпляр объекта класса Bitmap.
  • Создайте объект класса Graphics из объекта Bitmap.
  • Создайте объект Pen для рисования.
  • Нарисуйте кардинальный сплайн, используя метод Graphics.DrawCurve(Pen,Point[]).
  • Сохраните рисунок как изображение, используя метод Bitmap.Save(string).

Следующий пример кода C# рисует кардинальный сплайн с помощью Aspose.Drawing для .NET.

// Полные примеры и файлы данных см. на странице https://github.com/aspose-drawing/Aspose.Drawing-for-.NET.

using System.Drawing;

Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);

Pen pen = new Pen(Color.Blue, 2);
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) });

bitmap.Save("DrawCardinalSpline.png");
Нарисовать кардинальный сплайн

Добавление замкнутой кривой на чертеж с помощью C#

Вы также можете нарисовать замкнутую кривую так же, как рисовали другие графические объекты. Ниже приведены шаги для этого.

  • Создайте экземпляр объекта Bitmap.
  • Создайте объект класса Graphics и инициализируйте его из объекта Bitmap.
  • Создайте объект Pen для рисования замкнутой кривой.
  • Нарисуйте замкнутую кривую, используя метод Graphics.DrawClosedCurve(Pen,Point[]).
  • Сохраните рисунок методом Bitmap.Save(string).

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

// Полные примеры и файлы данных см. на странице https://github.com/aspose-drawing/Aspose.Drawing-for-.NET.

using System.Drawing;

Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);

Pen pen = new Pen(Color.Blue, 2);
graphics.DrawClosedCurve(pen, new Point[] { new Point(100, 700), new Point(350, 600), new Point(500, 500), new Point(650, 600), new Point(900, 700) });

bitmap.Save("DrawClosedCurve.png");
Нарисовать замкнутую кривую

Нарисуйте эллипс на чертеже с помощью C#

Ниже приведены шаги по рисованию эллипса на чертеже с помощью Aspose.Drawing для .NET.

  • Создайте экземпляр класса Bitmap.
  • Определите экземпляр класса Graphics и инициализируйте его из объекта Bitmap.
  • Используйте объект Pen, чтобы нарисовать эллипс.
  • Нарисуйте эллипс, используя метод Graphics.DrawEllipse(Pen, Single, Single, Single, Single).
  • Сохраните рисунок как изображение с помощью метода Bitmap.Save(string).

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

// Полные примеры и файлы данных см. на странице https://github.com/aspose-drawing/Aspose.Drawing-for-.NET.

using System.Drawing;

Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);

Pen pen = new Pen(Color.Blue, 2);
graphics.DrawEllipse(pen, 10, 10, 900, 700);

bitmap.Save("DrawEllipse.png");
Нарисовать эллипс

Рисование линий на чертеже с помощью C#

Линии являются одним из основных объектов для создания чертежей. Ниже приведены шаги для рисования линий на чертеже с использованием графического API Aspose.

  • Создайте экземпляр объекта Bitmap.
  • Создайте новый объект Graphics и инициализируйте его из объекта Bitmap.
  • Определите объект Pen для рисования линии.
  • Нарисуйте линию, используя метод Graphics.DrawLine(Pen, Int32, Int32, Int32, Int32).
  • Сохраните рисунок методом Bitmap.Save(string).

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

// Полные примеры и файлы данных см. на странице https://github.com/aspose-drawing/Aspose.Drawing-for-.NET.

using System.Drawing;

Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);

Pen pen = new Pen(Color.Blue, 2);
graphics.DrawLine(pen, 10, 700, 500, 10);
graphics.DrawLine(pen, 500, 10, 990, 700);

bitmap.Save("DrawLines.png");
Рисовать линии

Нарисуйте путь на чертеже с помощью C#

Ниже приведены шаги по рисованию контура на чертеже с помощью C#.

  • Создайте экземпляр объекта Bitmap.
  • Создайте объект класса Graphics и инициализируйте его из объекта Bitmap.
  • Определите объект Pen для рисования пути.
  • Создайте экземпляр класса GraphicsPath.
  • Добавьте графику в коллекцию путей.
  • Нарисуйте путь, используя метод Graphics.DrawPath(Pen, GraphicsPath).
  • Сохраните рисунок методом Bitmap.Save(string).

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

// Полные примеры и файлы данных см. на странице https://github.com/aspose-drawing/Aspose.Drawing-for-.NET.

using System.Drawing;
using System.Drawing.Drawing2D;

Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);

Pen pen = new Pen(Color.Blue, 2);
GraphicsPath path = new GraphicsPath();
path.AddLine(100, 100, 1000, 400);
path.AddLine(1000, 600, 300, 600);
path.AddRectangle(new Rectangle(500, 350, 200, 400));
path.AddEllipse(10, 250, 450, 300);
graphics.DrawPath(pen, path);

bitmap.Save("DrawPath.png");
Нарисовать путь

Нарисуйте многоугольник на чертеже с помощью C#

Ниже приведены шаги по рисованию многоугольника на чертеже с помощью Aspose.Drawing для .NET.

  • Создайте экземпляр объекта Bitmap.
  • Определите объект Graphics и инициализируйте его из объекта Bitmap.
  • Определите объект Pen для рисования многоугольника.
  • Нарисуйте многоугольник, используя метод Graphics.DrawPolygon(Pen,Point[]).
  • Сохраните рисунок методом Bitmap.Save(string).

Вот как вы можете нарисовать многоугольник на чертеже с помощью C#.

// Полные примеры и файлы данных см. на странице https://github.com/aspose-drawing/Aspose.Drawing-for-.NET.

using System.Drawing;

Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);

Pen pen = new Pen(Color.Blue, 2);
graphics.DrawPolygon(pen, new Point[] { new Point(100, 100), new Point(500, 700), new Point(900, 100) });

bitmap.Save("DrawPolygon.png");
Нарисовать многоугольник

Нарисуйте прямоугольник на чертеже с помощью C#

И последнее, но не менее важное: рисование прямоугольника. Ниже приведены шаги для рисования прямоугольника.

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

// Полные примеры и файлы данных см. на странице https://github.com/aspose-drawing/Aspose.Drawing-for-.NET.

using System.Drawing;

Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);

Pen pen = new Pen(Color.Blue, 2);
graphics.DrawRectangle(pen, 10, 10, 900, 700);

bitmap.Save("DrawRectangle.png");
Нарисовать прямоугольник

Вывод

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

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