Cómo fusionar fotos en C#

Este tema cubre cómo fusionar photos en C#. Abarca la configuración del entorno, el proceso paso a paso y un fragmento de código ejecutable para desarrollar un unidor de fotografías en C#. Puede aplicar esta información para trabajar con esta característica en cualquiera de los entornos compatibles con .NET en diferentes sistemas operativos.

Pasos para fusionar fotos en C#

  1. Configure el entorno para trabajar con Aspose.Imaging for .NET usando el complemento del administrador de paquetes NuGet
  2. Crea una lista de imágenes y obtén el tamaño de la imagen resultante.
  3. Combine imágenes en una nueva y cree una fuente de salida
  4. Establezca diferentes propiedades usando el objeto de clase JpegOptions
  5. Exporte la imagen fusionada usando la clase JpegImage

Estos pasos resumen todo el proceso para combinar fotos en C#. En primer lugar, cree una lista de varias imágenes para fusionarlas en una sola foto. En consecuencia, cree una nueva imagen y renderícela en la imagen de salida antes de guardarla en el disco o en una secuencia, según sus necesidades.

Código para fusionar fotos en 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");
}
}

Este fragmento de código es suficiente para desarrollar un combinador de imágenes en C#. Funciona con la clase JpegImage para crear la imagen de salida mientras calcula las dimensiones de las imágenes de origen. Luego procede a crear un rectángulo y guardar la imagen de salida fusionada usando el método Guardar. Además, puede personalizar varias propiedades de la imagen de salida con la clase JpegOptions, como el tipo de compresión, la calidad, el tipo de color, la unidad de resolución, etc., según sus requisitos.

En este artículo, hemos aprendido el proceso de realizar fusión de imágenes en C#. Si desea rotar una imagen, lea el artículo en cómo rotar una imagen en C#.

 Español