Как объединить фотографии в C#

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

Действия по объединению фотографий в C#

  1. Настройте среду для работы с Aspose.Imaging for .NET с помощью плагина диспетчера пакетов NuGet.
  2. Создайте список изображений и получите размер полученного изображения.
  3. Объедините изображения в новое и создайте источник вывода.
  4. Установите различные свойства, используя объект класса JpegOptions.
  5. Экспортируйте объединенное изображение, используя класс JpegImage.

Эти шаги суммируют весь процесс объединения фотографий в C#. Прежде всего, создайте список из нескольких изображений, которые нужно объединить в одну фотографию. Следовательно, создайте новое изображение и преобразуйте его в выходное изображение, прежде чем сохранять его на диск или в поток в зависимости от ваших потребностей.

Код для объединения фотографий на C#

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Aspose.Imaging;
using Aspose.Imaging.ImageOptions;
using Aspose.Imaging.Sources;
class Program
{
static void Main(string[] args) // Merge images into one image in C#
{
// Set PDF license
new Aspose.Imaging.License().SetLicense("License.lic");
// Create a list of images
string[] imagePaths = { "picture1.jpg", "picture2.jpg", "picture3.jpg" };
// Get resulting image's size
List<Aspose.Imaging.Size> imageSizes = new List<Aspose.Imaging.Size>();
foreach (string imagePath in imagePaths)
{
using (RasterImage image = (RasterImage)Aspose.Imaging.Image.Load(imagePath))
{
imageSizes.Add(image.Size);
}
}
int newWidth = imageSizes.Max(size => size.Width);
int newHeight = imageSizes.Sum(size => size.Height);
// Combine images into new one
using (MemoryStream memoryStream = new MemoryStream())
{
// Create output source
StreamSource outputStreamSource = new StreamSource(memoryStream);
// Create jpeg options
JpegOptions options = new JpegOptions()
{ Quality = 100, Source = outputStreamSource };
// Create output image
using (Aspose.Imaging.FileFormats.Jpeg.JpegImage newImage =
(Aspose.Imaging.FileFormats.Jpeg.JpegImage)Aspose.Imaging.Image.Create(options, newWidth, newHeight))
{
int stitchedHeight = 0;
// Merge images
foreach (string imagePath in imagePaths)
{
using (RasterImage image = (RasterImage)Aspose.Imaging.Image.Load(imagePath))
{
Aspose.Imaging.Rectangle bounds = new Aspose.Imaging.Rectangle(0, stitchedHeight, image.Width, image.Height);
newImage.SaveArgb32Pixels(bounds, image.LoadArgb32Pixels(image.Bounds));
stitchedHeight += image.Height;
}
}
// Save the merged image
newImage.Save("merged-image.jpg");
}
}
System.Console.WriteLine("Done");
}
}

Этого фрагмента кода достаточно для разработки объединителя изображений на C#. Он работает с классом JpegImage для создания выходного изображения при расчете размеров исходных изображений. Затем он переходит к созданию прямоугольника и сохранению объединенного выходного изображения с помощью метода Save. Кроме того, вы можете настроить некоторые свойства выходного изображения с помощью класса JpegOptions, такие как тип сжатия, качество, тип цвета, единица разрешения и т. д., в соответствии с вашими требованиями.

В этой статье мы изучили процесс выполнения слияния изображений в C#. Если вы хотите повернуть изображение, прочитайте статью на как повернуть изображение в C#.

 Русский