فشرده سازی تصویر کارآمد یک عنصر حیاتی از برنامه های مدرن وب و تلفن همراه است، زیرا به کاهش فضای ذخیره سازی و بهبود سرعت انتقال کمک می کند.در این راهنمای، ما بررسی خواهیم کرد که چگونه با استفاده از کتابخانه قدرتمند Aspose.Imaging برای .NET، تکنیک های فاش تصویر از دست رفته و بدون زیان را مقایسه کنیم.

معرفی

فشرده سازی تصویر را می توان به طور گسترده ای به دو نوع دسته بندی کرد: ** ضعیف** و ** بی ضعف**. هر روش مزایای خاص خود را دارد و برای سناریوهای مختلف مناسب است:

  • Lossy Compression: اندازه فایل را با حذف داده های غیر ضروری کاهش می دهد و منجر به کاهش کمی کیفیت می شود.
  • بدون خسارت فشرده سازی: تمام داده های تصویر را حفظ می کند در حالی که اندازه فایل را کاهش می دهد و تضمین نمی کند که کیفیت از دست رفته باشد.

در این مقاله، ما در مورد چگونگی اجرای این تکنیک ها با استفاده از Aspose.Imaging برای .NET صحبت خواهیم کرد و برنامه های کاربردی آنها را در زمینه های مختلف مانند ارائه وب، ذخیره سازی آرشیو و یا جریان های کار ویرایش حرفه ای مورد بحث قرار خواهیم داد.

آرشیو برچسب ها: تصور

قبل از غوطه ور شدن در نمونه های کد، مطمئن شوید که تنظیمات زیر را داشته باشید:

  • NET SDK را در سیستم خود نصب کنید.
  • اضافه کردن Aspose.Imaging به پروژه خود با استفاده از NuGet:
using Aspose.Imaging;
using Aspose.Imaging.FileFormats.Jpeg;

// Initialize metered license
Metered metered = new Metered();
metered.SetMeteredKey("your-public-key", "your-private-key");

string inputPath = @"path\to\input.jpg";
string outputPathLossy = @"path\to\output_lossy.jpg";
string outputPathLossless = @"path\to\output_lossless.png";

// Load the image
JpegImage jpegImage = (JpegImage)Image.Load(inputPath);

// Lossy Compression Example
using (MemoryStream msLossy = new MemoryStream())
{
    // Save with lossy compression settings
    jpegImage.Save(msLossy, new JpegOptions { Quality = 75 });
    
    File.WriteAllBytes(outputPathLossy, msLossy.ToArray());
}

// Lossless Compression Example
using (PngOptions options = new PngOptions())
{
    options.Source = new FileCreateSource(outputPathLossless, false);
    jpegImage.Save(outputPathLossless, options);
}

درک کد

بیایید بخش های کلیدی این پیاده سازی را از بین ببریم:

مرحله اول: تنظیمات اولیه

اول، ما مجوز اندازه گیری را آغاز می کنیم و فایل ورودی را بارگذاری می کند:

// Initialize metered license
Metered metered = new Metered();
metered.SetMeteredKey("your-public-key", "your-private-key");

string inputPath = @"path\to\input.jpg";
JpegImage jpegImage = (JpegImage)Image.Load(inputPath);

مرحله دوم: تنظیم ضعف فشرده سازی

پس از آن، ما تنظیمات ضعیف فشرده سازی را تنظیم می کنیم و تصویر را ذخیره می کند:

using (MemoryStream msLossy = new MemoryStream())
{
    // Save with lossy compression settings
    jpegImage.Save(msLossy, new JpegOptions { Quality = 75 });
    
    File.WriteAllBytes(outputPathLossy, msLossy.ToArray());
}

مرحله 3: تنظیم فشرده سازی بدون از دست دادن

در حال حاضر، ما فشرده سازی بدون از دست دادن را تنظیم می کنیم و تصویر را نجات می دهیم:

using (PngOptions options = new PngOptions())
{
    options.Source = new FileCreateSource(outputPathLossless, false);
    jpegImage.Save(outputPathLossless, options);
}

مفاهیم کلیدی توضیح داده شده

  • ضعیف فشرده سازی: The JpegOptions کلاس به شما اجازه می دهد تا سطح کیفیت برای فشرده سازی ضعیف را مشخص کنید.قیمت پایین تر در اندازه فایل کوچکتر اما با کیفیت تصویر کاهش می یابد.

  • بدون از دست دادن فشرده سازی: هنگامی که یک تصویر به عنوان PNG ذخیره می شود، Aspose.Imaging به طور اتوماتیک از ضمیمه بدون خسارت استفاده می کند، اطمینان حاصل شود که هیچ داده ای در طول فرآیند از بین نمی رود.

نتیجه گیری

با استفاده از ویژگی های قوی Aspose.Imaging، توسعه دهندگان می توانند تصاویر را برای برنامه های مختلف بهینه سازی کنند و در عین حال بالاترین استانداردهای کیفیت را حفظ کنند چگونه برای مقایسه ضعف در مقابل ضعف ضعف در .NET.

More in this category