Создание, загрузка, заполнение и рисование растровых изображений в C#

Растровое изображение используется для создания и хранения компьютерной графики. Растровые изображения широко используются на веб-страницах и цифровых устройствах, таких как камеры, смартфоны и т. д. Наиболее распространенными типами растровых графических файлов являются BMP, GIF, PNG и JPEG. В этой статье мы узнаем, как создать растровое изображение на C#.

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

  1. API C# для создания, загрузки, заливки и рисования растровых изображений
  2. Создать новое растровое изображение с нуля
  3. Создать растровое изображение из массива байтов
  4. Сохранить растровое изображение как файл изображения
  5. Рисовать фигуры на растровом изображении
  6. Нарисовать текст на растровом изображении
  7. Заливка растрового изображения сплошным цветом
  8. Загрузить изображение в растровое изображение
  9. Изменить размер существующего изображения с помощью растрового изображения

C# API для создания, загрузки, заполнения и рисования растровых изображений — скачать бесплатно

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

Пожалуйста, либо загрузите DLL API, либо установите его с помощью NuGet.

PM> Install-Package Aspose.Drawing

Создание нового растрового изображения в C#

Мы можем создать новое растровое изображение с нуля, выполнив следующие шаги:

  1. Во-первых, создайте новое растровое изображение с помощью класса Bitmap с указанным размером и форматом.
  2. Затем создайте новый объект Graphics из объекта Bitmap с помощью метода FromImage().
  3. Затем инициализируйте объект класса Pen с указанным цветом и размером.
  4. После этого вызовите метод DrawEllipse(), чтобы нарисовать эллипс заданного размера.
  5. Наконец, сохраните выходное изображение с помощью метода Save().

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

// В этом примере кода показано, как программно создать новое растровое изображение на C#.
// Инициализировать растровый объект
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Создать новую графику
Graphics graphics = Graphics.FromImage(bitmap);

// Инициализировать перо
Pen pen = new Pen(Color.Red, 5);

// Нарисуйте прямоугольник
graphics.DrawEllipse(pen, new Rectangle(0, 0, 700, 700));

// Сохраните файл
bitmap.Save(@"C:\Files\Drawings\output.png");
Создание нового растрового изображения в CSharp

Создайте новый битмап в С#

Создайте растровое изображение из массива байтов в С#

Мы можем создать растровое изображение из байтов потока памяти, выполнив следующие шаги:

  1. Считайте файл изображения в массив байтов.
  2. Создайте новый экземпляр MemoryStream, используя объект массива байтов.
  3. Создайте новое растровое изображение, используя класс Bitmap с объектом MemoryStream.
  4. Наконец, сохраните изображение с помощью метода Save().

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

// В этом примере кода показано, как создать новое растровое изображение из байтов потока памяти в C#.
// Загрузите изображение и прочитайте все байты
var file = File.ReadAllBytes(@"C:\Files\Drawings\sample.jpg");

// Создать поток памяти
MemoryStream stream = new MemoryStream(file);

// Создать новое растровое изображение
Bitmap bitmap = new Bitmap(stream);

// Сохраните файл
bitmap.Save(@"C:\Files\Drawings\output.jpg");

С# Сохранить растровое изображение в файл

Мы можем сохранить растровое изображение в файл в различных поддерживаемых форматах файлов, выполнив шаги, упомянутые ранее. Однако нам просто нужно указать желаемое расширение формата файла сохранения при сохранении файла изображения с помощью метода Сохранить (строковое имя файла, формат ImageFormat) на последнем шаге.

  • Сохранение растрового изображения в виде файла BMP
bitmap.Save(@"C:\Files\output.bmp", ImageFormat.Bmp);
  • Сохранить растровое изображение как файл PNG
bitmap.Save(@"C:\Files\output.png", ImageFormat.Png);
  • Сохранить растровое изображение как файл JPG
bitmap.Save(@"C:\Files\output.jpg", ImageFormat.Jpeg);
  • Сохранение растрового изображения в виде файла GIF
bitmap.Save(@"C:\Files\output.gif", ImageFormat.Gif);

С# Рисование на растровом изображении

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

Мы можем рисовать следующие фигуры, используя предоставленные специальные методы для рисования на растровом изображении:

  • Дуга: мы можем нарисовать дугу, используя метод DrawArc().
  • Безье: Мы можем нарисовать Безье, используя метод DrawBezier().
  • Серия сплайнов Безье: мы можем нарисовать серию сплайнов Безье, используя метод DrawBeziers().
  • Кривая: мы можем нарисовать изогнутую форму, используя метод DrawCurve().
  • ClosedCurve: мы можем нарисовать замкнутую кривую, используя метод DrawClosedCurve().
  • Эллипс: мы можем нарисовать эллипс, используя метод DrawEllipse().
  • Линия: мы можем нарисовать линию, используя метод DrawLine().
  • Серия линий: мы можем нарисовать серию линий, используя метод DrawLines().
  • Путь: мы можем нарисовать Путь, используя метод DrawPath().
  • Pie: мы можем нарисовать Pie, используя метод DrawPie().
  • Многоугольник: мы можем нарисовать многоугольник с помощью метода DrawPolygon().
  • Прямоугольник: мы можем нарисовать прямоугольник, используя метод DrawRectangle().
  • Серия прямоугольников: мы можем нарисовать серию прямоугольников, используя метод DrawRectangles().

Мы можем рисовать изображения на растровом изображении, используя следующие методы:

  • Значок: мы можем нарисовать изображение, представленное указанным значком, в области, заданной структурой Rectangle, с помощью метода DrawIcon().
  • Изображение: мы можем нарисовать любое указанное изображение, используя метод DrawImage().

С# Рисование текста на растровом изображении

Мы можем нарисовать любую строку на растровом изображении, выполнив следующие шаги:

  1. Во-первых, создайте новое растровое изображение, используя класс Bitmap, с указанным размером.
  2. Затем создайте новый объект Graphics из объекта Bitmap с помощью метода FromImage().
  3. Затем определите объект класса Font с желаемым семейством шрифтов, стилем и размером.
  4. Тем временем инициализируйте объект SolidBrush с указанным цветом.
  5. После этого вызовите метод DrawString() с текстом для отображения, объектами Font и Brush в качестве аргументов.
  6. Наконец, сохраните выходное изображение с помощью метода Save().

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

// В этом примере кода показано, как программно нарисовать текст на новом растровом изображении на C#.
// Инициализировать растровый объект
Bitmap bitmap = new Bitmap(500,200);

// Создать новую графику
Graphics graphics = Graphics.FromImage(bitmap);

// Инициализировать шрифт
var font = new Font(FontFamily.GenericSerif, 40f, FontStyle.Bold);

// Инициализировать кисть
var brush = new SolidBrush(Color.Red);

// Нарисуйте прямоугольник
graphics.DrawString("Welcome to Bitmap!", font, brush, 10, 20);

// Сохраните файл
bitmap.Save(@"C:\Files\Drawings\output.png", ImageFormat.Png);
С# Рисование текста на растровом изображении

С# Рисование текста на растровом изображении

Заполнить растровое изображение сплошным цветом в C#

Мы можем заполнить растровое изображение сплошным цветом, используя заполненный прямоугольник, и сохранить его в новом растровом изображении, выполнив следующие шаги:

  1. Во-первых, создайте новое растровое изображение, используя класс Bitmap, с указанным размером.
  2. Затем создайте новый объект Graphics из объекта Bitmap с помощью метода FromImage().
  3. Затем инициализируйте объект класса Rectangle с указанным расположением и размером.
  4. После этого вызовите метод FillRectangle() с цветом кисти и прямоугольником.
  5. Наконец, сохраните выходное изображение с помощью метода Save().

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

// В этом примере кода показано, как создать новое растровое изображение с заполненным прямоугольником в C#.
// Инициализировать растровое изображение с указанным размером
Bitmap bitmap = new Bitmap(500, 500);

// Создать новую графику
Graphics graph = Graphics.FromImage(bitmap);

// Определить прямоугольник
Rectangle ImageSize = new Rectangle(0, 0, 500, 500);

// Нарисуйте закрашенный прямоугольник
graph.FillRectangle(Brushes.Gray, ImageSize);

// Сохраните файл
bitmap.Save(@"C:\Files\Drawings\output.png");
С# Рисование на растровом изображении и заливка прямоугольником

C# Нарисуйте прямоугольник на растровом изображении и залейте его цветом

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

Мы также можем загрузить существующее изображение в растровое изображение и сохранить его как новое растровое изображение, выполнив следующие шаги:

  1. Во-первых, загрузите изображение с помощью класса Bitmap.
  2. Затем создайте новое растровое изображение, используя класс Bitmap, с указанным размером.
  3. Затем создайте новый объект Graphics из только что созданного объекта Bitmap с помощью метода FromImage().
  4. После этого вызовите метод DrawImage() с изображением и координатами местоположения в качестве аргументов.
  5. Наконец, сохраните выходное изображение с помощью метода Save().

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

// В этом примере кода показано, как загрузить изображение в растровое изображение и сохранить как новое растровое изображение.
// Загрузите изображение:
Bitmap image = new Bitmap(@"C:\Files\Drawings\sample.jpg");

// Инициализировать растровое изображение с указанным размером
Bitmap bitmap = new Bitmap(1000, 1000);

// Создать новую графику
Graphics graphics = Graphics.FromImage(bitmap);

// Нарисовать изображение в указанном месте
graphics.DrawImage(image, 10, 10);

// Сохраните файл
bitmap.Save(@"C:\Files\Drawings\output.png");
Загрузка изображения в растровое изображение с помощью CSharp

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

Как изменить размер изображения с помощью растрового изображения в C#

Мы можем загрузить и изменить размер существующего изображения в растровом изображении и сохранить его как новое растровое изображение, выполнив следующие шаги:

  1. Загрузите существующее изображение с помощью класса Bitmap.
  2. Создайте новое растровое изображение с помощью класса Bitmap с загруженным изображением и указанным размером.
  3. Наконец, сохраните выходное изображение с помощью метода Save().

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

// В этом примере кода показано, как изменить размер существующего изображения и создать новое растровое изображение в C#.
// Загрузите изображение:
Bitmap image = new Bitmap(@"C:\Files\Drawings\sample.jpg");

// Создайте новое растровое изображение размером в половину загруженного изображения:
Bitmap bitmap = new Bitmap(image, (int)(image.Width * 0.5), (int)(image.Height * 0.5));

// Сохраните файл
bitmap.Save(@"C:\Files\Drawings\output.jpg");
Как изменить размер изображения с помощью растрового изображения в C#

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

Получить бесплатную временную лицензию

Вы можете получить бесплатную временную лицензию, чтобы попробовать Aspose.Drawing for .NET без ограничений пробной версии.

Заключение

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

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

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

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