Como mesclar fotos em C#

Este tópico aborda como mesclar photos em C#. Ele abrange a configuração do ambiente, o processo passo a passo e um trecho de código executável para desenvolver um marceneiro de fotos em C#. Você pode aplicar essas informações para trabalhar com esse recurso em qualquer ambiente compatível com .NET em diferentes sistemas operacionais.

Etapas para mesclar fotos em C#

  1. Configure o ambiente para trabalhar com Aspose.Imaging for .NET usando o plug-in do gerenciador de pacotes NuGet
  2. Crie uma lista de imagens e obtenha o tamanho da imagem resultante
  3. Combine imagens em uma nova e crie uma fonte de saída
  4. Defina propriedades diferentes usando o objeto de classe JpegOptions
  5. Exporte a imagem mesclada usando a classe JpegImage

Estas etapas resumem todo o processo para combinar fotos em C#. Em primeiro lugar, crie uma lista de várias imagens a serem mescladas em uma foto. Conseqüentemente, crie uma nova imagem e renderize-a na imagem de saída antes de salvá-la no disco ou em um fluxo, dependendo de suas necessidades.

Código para mesclar fotos em 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 trecho de código é suficiente para desenvolver um combinador de imagem em C#. Ele funciona com a classe JpegImage para criar a imagem de saída enquanto calcula as dimensões da imagem das imagens de origem. Em seguida, ele cria um retângulo e salva a imagem de saída mesclada usando o método Save. Além disso, você pode personalizar várias propriedades da imagem de saída com a classe JpegOptions, como tipo de compactação, qualidade, tipo de cor, unidade de resolução, etc., conforme suas necessidades.

Neste artigo, aprendemos o processo de realização de mesclagem de imagens em C#. Se você deseja girar uma imagem, leia o artigo em como girar uma imagem em C#.

 Português