Aspose.Imaging’s Image Merger для плагіна .NET дозволяє об’єднувати зображення вертикально або горизонтально без втрати якості, сприяючи креативності у створенні різноманітних фотоколажів. Цей універсальний інструмент підтримує різні формати файлів, що дає можливість легко створювати приголомшливі візуальні композиції.
Graphics
для виведення зображенняОтримайте відповідні файли збірки з downloads або отримайте пакет з NuGet , щоб додати Aspose.Imaging
безпосередньо до вашого робочого простору.
using Aspose.Imaging; | |
using Aspose.Imaging.FileFormats.Png; | |
using Aspose.Imaging.ImageOptions; | |
using Aspose.Imaging.Sources; | |
using System.Collections.Generic; | |
using System.IO; | |
string templatesFolder = @"c:\Users\USER\Downloads\templates\"; | |
string dataDir = templatesFolder; | |
var images = new List<Image>(); | |
string[] files = new string[] { "template.png", "template.jpg" }; | |
//Indicate how to merge, 0 - horizontal, 1 - vertical | |
byte[] mergeDirection = new byte[] { 0, 1 }; | |
int maxWidth = 0; | |
int maxHeight = 0; | |
int totalWidth = 0; | |
int totalHeight = 0; | |
foreach (var fileName in files) | |
{ | |
var image = Image.Load(dataDir + fileName); | |
totalWidth += image.Width; | |
if (image.Width > maxWidth) | |
{ | |
maxWidth = image.Width; | |
} | |
totalHeight += image.Height; | |
if (image.Height > maxHeight) | |
{ | |
maxHeight = image.Height; | |
} | |
images.Add(image); | |
} | |
MergeImages(0); | |
MergeImages(1); | |
images.ForEach(image => image.Dispose()); | |
File.Delete(dataDir + "result.gif"); | |
void MergeImages(byte direction) | |
{ | |
int targetWidth, targetHeight; | |
if (direction == 0) | |
{ | |
targetWidth = totalWidth; | |
targetHeight = maxHeight; | |
} | |
else | |
{ | |
targetWidth = maxWidth; | |
targetHeight = totalHeight; | |
} | |
var outputPath = dataDir; | |
outputPath = Path.Combine(outputPath, "result" + direction + ".png"); | |
var pngOptions = new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha }; | |
using (Stream stream = new MemoryStream()) | |
{ | |
pngOptions.Source = new StreamSource(stream); | |
using (var image = Image.Create(pngOptions, targetWidth, targetHeight)) | |
{ | |
image.BackgroundColor = Color.White; | |
var graphics = new Graphics(image); | |
float x = 0, y = 0; | |
images.ForEach(image => | |
{ | |
graphics.DrawImage(image, new RectangleF(x, y, image.Width, image.Height)); | |
if (direction == 0) | |
{ | |
x += image.Width; | |
} | |
if (direction == 1) | |
{ | |
y += image.Height; | |
} | |
}); | |
image.Save(outputPath); | |
} | |
} | |
File.Delete(outputPath); | |
} |
Злиття зображень для .NET дозволяє легко створювати вражаючі колажі, що робить його незамінним інструментом для дизайнерів і фотографів. Він оптимізований для продуктивності, що забезпечує можливість обробки зображень з високою роздільною здатністю без затримок, що дозволяє швидкій та продуктивній роботі.
Створення фотоколажу - це створення нової фотографії або зображення шляхом поєднання декількох зображень. Ці зображення можуть не бути прямо пов’язані між собою, що дозволяє різноманітні та творчі композиції.
Фотографи можуть досягти бажаних ефектів у фотоколажі, накладаючи одне зображення на інше або поєднуючи багато зображень в одне ціле. Цей процес може включати більше, ніж два зображення, і результат може містити хаотичне використання різних фотографічних зображень, нагадуючи головоломку чи мозаїку.
Плагін Image Merger для .NET від Aspose.Imaging підтримує великий спектр форматів зображень для злиття, включаючи WEBP, WMF, TIFF, PNG, SVG, ODG, OTG, JPG, JP2, ICO, J2K, EPS, GIF, DNG, EMF, DJVU, DIB, DICOM, CDR, CMX, APNG та BMP.
Воно дозволяє безшовно поєднати дві або більше зображень вертикально або горизонтально без втрати якості.
Переконайтеся перевірити репозиторій GitHub для робочих прикладів та зразків.