V tomto článku se dozvíte, jak sloučit nebo kombinovat více obrázků do jednoho obrázku programově pomocí C#. Podrobný průvodce a ukázky kódu demonstrují, jak sloučit obrázky vodorovně nebo svisle.
C# API pro sloučení obrázků – ke stažení zdarma
Abychom sloučili více obrázků do jednoho obrázku, použijeme Aspose.Imaging for .NET. Jedná se o výkonné a na funkce bohaté rozhraní API pro zpracování obrázků, které vám umožňuje manipulovat s širokou škálou formátů obrázků. API si můžete buď stáhnout, nebo jej nainstalovat pomocí NuGet.
PM> Install-Package Aspose.Imaging
Informace: Další rozhraní API od společnosti Aspose, zejména Aspose.Slides for .NET, vám také mohou umožnit slučování obrázků ([JPG](https://products .aspose.com/slides/net/merger/jpg-to-jpg/) nebo PNG), PDF , [HTML dokumenty](https://products.aspose.com/slides/net/merger/html-to -html/) a soubory v jiných formátech.
Sloučit více obrázků v C#
Existují dva způsoby, jak sloučit obrázky do jednoho: vertikálně a horizontálně. V první metodě jsou obrázky připojeny k sobě vertikálně, zatímco v druhé jsou obrázky kombinovány jeden po druhém horizontálně. V následujících částech se seznámíte s oběma metodami s ukázkami kódu.
C# Sloučit obrázky vertikálně
Následují kroky pro vertikální sloučení obrázků pomocí C#.
- Nejprve zadejte cesty k obrázkům v poli řetězců.
- Poté vytvořte seznam Velikost a uložte do něj velikost každého obrázku.
- Vypočítejte výšku a šířku výsledného obrázku.
- Vytvořte objekt třídy StreamSource a inicializujte jej pomocí nového MemoryStream.
- Vytvořte objekt třídy JpegOptions a nastavte jeho možnosti.
- Vytvořte instanci třídy JpegImage pro nový obrázek a inicializujte jej pomocí JpegOptions a vypočítané výšky a šířky.
- Iterujte seznam obrázků a v každé iteraci načtěte obrázek do objektu RasterImage.
- Vytvořte Rectangle pro každý obrázek a přidejte jej do nového obrázku pomocí metody JpegImage.SaveArgb32Pixels().
- Zvyšte výšku šití v každé iteraci.
- Nakonec nový obrázek uložte pomocí metody JpegImage.Save(string).
Následující ukázka kódu ukazuje, jak sloučit obrázky vertikálně v C#.
// Vytvořte seznam obrázků
string[] imagePaths = { "image1.jpg", "image2.jpg", "image3.jpg", "image4.jpg", "image5.png" };
// Získejte výslednou velikost obrázku
List<Size> imageSizes = new List<Size>();
foreach (string imagePath in imagePaths)
{
using (RasterImage image = (RasterImage)Image.Load(imagePath))
{
imageSizes.Add(image.Size);
}
}
int newWidth = imageSizes.Max(size => size.Width);
int newHeight = imageSizes.Sum(size => size.Height);
// Spojte obrázky do nového
using (MemoryStream memoryStream = new MemoryStream())
{
// Vytvořte výstupní zdroj
StreamSource outputStreamSource = new StreamSource(memoryStream);
// Vytvořte možnosti jpeg
JpegOptions options = new JpegOptions() { Source = outputStreamSource, Quality = 100 };
// Vytvořte výstupní obrázek
using (JpegImage newImage = (JpegImage)Image.Create(options, newWidth, newHeight))
{
int stitchedHeight = 0;
// Sloučit obrázky
foreach (string imagePath in imagePaths)
{
using (RasterImage image = (RasterImage)Image.Load(imagePath))
{
Rectangle bounds = new Rectangle(0, stitchedHeight, image.Width, image.Height);
newImage.SaveArgb32Pixels(bounds, image.LoadArgb32Pixels(image.Bounds));
stitchedHeight += image.Height;
}
}
// Uložte sloučený obrázek
newImage.Save("merged-image.jpg");
}
}
Sloučit obrázky vodorovně v C#
Následují kroky pro horizontální kombinování obrázků pomocí C#.
- Nejprve zadejte cesty k obrázkům v poli řetězců.
- Poté vytvořte seznam Velikost a uložte do něj velikost každého obrázku.
- Vypočítejte výšku a šířku výsledného obrázku.
- Vytvořte nový zdroj pomocí FileCreateSource(String, Boolean) a inicializujte jej s cestou k souboru.
- Vytvořte objekt třídy JpegOptions a nastavte jeho možnosti.
- Vytvořte instanci třídy JpegImage pro nový obrázek a inicializujte jej pomocí JpegOptions a vypočítané výšky a šířky.
- Iterujte seznam obrázků a v každé iteraci načtěte obrázek do objektu RasterImage.
- Vytvořte Rectangle pro každý obrázek a přidejte jej do nového obrázku pomocí metody JpegImage.SaveArgb32Pixels().
- Zvětšete šířku šití v každé iteraci.
- Po dokončení uložte nový obrázek pomocí metody JpegImage.Save(string).
Následující ukázka kódu ukazuje, jak vodorovně sloučit více obrázků.
// Vytvořte seznam obrázků
string[] imagePaths = { "image1.jpg", "image2.jpg", "image3.jpg", "image4.JPG", "image5.png" };
// Chcete-li vytvořit dočasný obrázek
string tempFilePath = "temp.jpg";
// Získejte výslednou velikost obrázku
List <Size> imageSizes = new List<Size>();
foreach (string imagePath in imagePaths)
{
using (RasterImage image = (RasterImage)Image.Load(imagePath))
{
imageSizes.Add(image.Size);
}
}
int newWidth = imageSizes.Sum(size => size.Width);
int newHeight = imageSizes.Max(size => size.Height);
// Spojte obrázky do nového
Source tempFileSource = new FileCreateSource(tempFilePath, isTemporal: true);
// Vytvořte možnosti jpeg
JpegOptions options = new JpegOptions() { Source = tempFileSource, Quality = 100 };
using (JpegImage newImage = (JpegImage)Image.Create(options, newWidth, newHeight))
{
int stitchedWidth = 0;
// Sloučit obrázky
foreach (string imagePath in imagePaths)
{
using (RasterImage image = (RasterImage)Image.Load(imagePath))
{
Rectangle bounds = new Rectangle(stitchedWidth, 0, image.Width, image.Height);
newImage.SaveArgb32Pixels(bounds, image.LoadArgb32Pixels(image.Bounds));
stitchedWidth += image.Width;
}
}
// Uložte sloučený obrázek
newImage.Save(outputPath);
}
C# Image Merging API – Získejte bezplatnou licenci
Můžete získat bezplatnou dočasnou licenci a sloučit obrázky bez omezení hodnocení.
Závěr
V tomto článku jste se naučili, jak sloučit více obrázků do jednoho obrázku pomocí C#. Ukázky kódu ukázaly, jak kombinovat obrázky vertikálně a horizontálně. Kromě toho můžete prozkoumat více o rozhraní API pro zpracování obrázků .NET pomocí dokumentace. Své dotazy s námi můžete sdílet také prostřednictvím našeho fóra.
Viz také
- Převést obrázky do stupňů šedi v C#
- Přidat vodoznak do obrázků pomocí C#
- Komprimujte obrázky PNG, JPEG a TIFF pomocí C#
Informace: Aspose poskytuje bezplatnou webovou aplikaci Collage. Pomocí této online služby můžete sloučit obrázky JPG do JPG nebo PNG do PNG, vytvářet mřížky fotografií a tak dále.