ادغام تصاویر در سی شارپ

در این مقاله، نحوه ادغام یا ترکیب چندین تصویر را در یک تصویر واحد به صورت برنامه نویسی با استفاده از سی شارپ یاد خواهید گرفت. راهنمای گام به گام و نمونه کد نحوه ادغام تصاویر را به صورت افقی یا عمودی نشان می دهد.

C# API برای ادغام تصاویر - دانلود رایگان

برای ادغام چندین تصویر در یک تصویر واحد، از Aspose.Imaging for .NET استفاده می کنیم. این یک API پردازش تصویر قدرتمند و غنی است که به شما امکان می دهد طیف گسترده ای از فرمت های تصویر را دستکاری کنید. می توانید API را دانلود یا با استفاده از NuGet نصب کنید.

PM> Install-Package Aspose.Imaging

اطلاعات: سایر APIهای Aspose، به ویژه Aspose.Slides for .NET، ممکن است به شما امکان ادغام تصاویر (JPG را نیز بدهد. .aspose.com/slides/net/merger/jpg-to-jpg/) یا PNGPDF ، [اسناد HTML](https://products.aspose.com/slides/net/merger/html-to -html/)، و فایل ها در فرمت های دیگر.

ادغام چندین تصویر در سی شارپ

دو راه برای ادغام تصاویر در یک تصویر وجود دارد: عمودی و افقی. در روش اول، تصاویر به صورت عمودی به یکدیگر اضافه می شوند، در حالی که در روش دوم، تصاویر یکی پس از دیگری به صورت افقی ترکیب می شوند. در قسمت های بعدی هر دو روش را با نمونه کد یاد خواهید گرفت.

C# تصاویر را به صورت عمودی ادغام کنید

در زیر مراحل ادغام تصاویر به صورت عمودی با استفاده از سی شارپ آمده است.

  • ابتدا مسیرهای تصاویر را در یک آرایه رشته ای مشخص کنید.
  • سپس، فهرستی از Size ایجاد کنید و اندازه هر تصویر را در آن ذخیره کنید.
  • ارتفاع و عرض تصویر حاصل را محاسبه کنید.
  • یک شی از کلاس StreamSource ایجاد کنید و آن را با یک MemoryStream جدید مقداردهی کنید.
  • یک شی از کلاس JpegOptions ایجاد کنید و گزینه های آن را تنظیم کنید.
  • کلاس JpegImage را برای تصویر جدید نمونه سازی کنید و آن را با JpegOptions و ارتفاع و عرض محاسبه شده مقداردهی کنید.
  • در لیست تصاویر تکرار کنید و در هر تکرار، تصویر را در یک شی RasterImage بارگذاری کنید.
  • برای هر تصویر یک مستطیل ایجاد کنید و آن را با استفاده از روش JpegImage.SaveArgb32Pixels() به تصویر جدید اضافه کنید.
  • ارتفاع دوخت را در هر بار تکرار افزایش دهید.
  • در نهایت، تصویر جدید را با استفاده از روش JpegImage.Save(string) ذخیره کنید.

نمونه کد زیر نحوه ادغام تصاویر به صورت عمودی در سی شارپ را نشان می دهد.

// لیستی از تصاویر ایجاد کنید
string[] imagePaths = { "image1.jpg", "image2.jpg", "image3.jpg", "image4.jpg", "image5.png" };

// اندازه تصویر حاصل را دریافت کنید
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);

// تصاویر را در یک عکس جدید ترکیب کنید
using (MemoryStream memoryStream = new MemoryStream())
{
    // منبع خروجی ایجاد کنید
    StreamSource outputStreamSource = new StreamSource(memoryStream);
    
    // گزینه های jpeg ایجاد کنید
    JpegOptions options = new JpegOptions() { Source = outputStreamSource, Quality = 100 };
    
    // تصویر خروجی ایجاد کنید
    using (JpegImage newImage = (JpegImage)Image.Create(options, newWidth, newHeight))
    {
        int stitchedHeight = 0;
        // ادغام تصاویر
        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;
            }
        }
        
        // تصویر ادغام شده را ذخیره کنید
        newImage.Save("merged-image.jpg");
    }
}

ادغام تصاویر به صورت افقی در سی شارپ

مراحل زیر برای ترکیب افقی تصاویر با استفاده از سی شارپ آمده است.

  • ابتدا مسیرهای تصاویر را در یک آرایه رشته ای مشخص کنید.
  • سپس، فهرستی از Size ایجاد کنید و اندازه هر تصویر را در آن ذخیره کنید.
  • ارتفاع و عرض تصویر حاصل را محاسبه کنید.
  • یک منبع جدید با استفاده از FileCreateSource(String, Boolean) ایجاد کنید و آن را با مسیر فایل مقداردهی کنید.
  • یک شی از کلاس JpegOptions ایجاد کنید و گزینه های آن را تنظیم کنید.
  • کلاس JpegImage را برای تصویر جدید نمونه سازی کنید و آن را با JpegOptions و ارتفاع و عرض محاسبه شده مقداردهی کنید.
  • در لیست تصاویر تکرار کنید و در هر تکرار، تصویر را در یک شی RasterImage بارگذاری کنید.
  • برای هر تصویر یک مستطیل ایجاد کنید و آن را با استفاده از روش JpegImage.SaveArgb32Pixels() به تصویر جدید اضافه کنید.
  • عرض دوخت را در هر تکرار افزایش دهید.
  • پس از انجام، تصویر جدید را با استفاده از روش JpegImage.Save(string) ذخیره کنید.

نمونه کد زیر نحوه ادغام چند تصویر را به صورت افقی نشان می دهد.

// فهرستی از تصاویر ایجاد کنید
string[] imagePaths = { "image1.jpg", "image2.jpg", "image3.jpg", "image4.JPG", "image5.png" };

// برای ایجاد یک تصویر موقت
string tempFilePath = "temp.jpg";

// اندازه تصویر حاصل را دریافت کنید
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);

// تصاویر را در یک عکس جدید ترکیب کنید
Source tempFileSource = new FileCreateSource(tempFilePath, isTemporal: true);

// گزینه های jpeg ایجاد کنید
JpegOptions options = new JpegOptions() { Source = tempFileSource, Quality = 100 };
using (JpegImage newImage = (JpegImage)Image.Create(options, newWidth, newHeight))
{
    int stitchedWidth = 0;
    
    // ادغام تصاویر
    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;
        }
    }
    
    // تصویر ادغام شده را ذخیره کنید
    newImage.Save(outputPath);
}

C# Image Merging API - یک مجوز رایگان دریافت کنید

شما می توانید یک مجوز موقت رایگان دریافت کنید و تصاویر را بدون محدودیت ارزیابی ادغام کنید.

نتیجه

در این مقاله یاد گرفتید که چگونه با استفاده از سی شارپ چندین تصویر را در یک تصویر ادغام کنید. نمونه کد نحوه ترکیب تصاویر را به صورت عمودی و افقی نشان داده است. علاوه بر این، می‌توانید با استفاده از مستندات درباره API پردازش تصویر .NET بیشتر کاوش کنید. همچنین، می توانید سوالات خود را از طریق [تالار گفتمان26 با ما در میان بگذارید.

همچنین ببینید

اطلاعات: Aspose برنامه وب رایگان کلاژ را ارائه می دهد. با استفاده از این سرویس آنلاین، می توانید تصاویر JPG به JPG یا PNG را به PNG ادغام کنید، [شبکه های عکس 3 و غیره ایجاد کنید.