کاهش اندازه فایل PNG با استفاده از C#

کاهش اندازه فایل PNG با استفاده از C#

ذخیره‌سازی سیستم موضوعی حیاتی در این عصر مدرن فناوری است. مقدار داده‌ها هر روز در حال افزایش است و نمایش بصری پرونده‌های داده‌ای محبوبیت زیادی پیدا کرده است. با این حال، روش‌های زیادی برای فشرده‌سازی فرمت‌های پرونده تصویر وجود دارد اما کیفیت تصویر نباید به خطر بیفتد. بنابراین، ما از این .NET image compression API برای فشرده‌سازی تصاویر PNG استفاده خواهیم کرد. در این پست وبلاگ، یاد خواهیم گرفت که چگونه اندازه فایل PNG را به‌صورت برنامه‌نویسی با C# کاهش دهیم.

ما نکات زیر را در این مقاله بررسی خواهیم کرد:

نصب API سی‌شارپ فشرده‌سازی تصویر PNG

این کتابخانه مجموعه وسیعی از روش‌ها و ویژگی‌ها را برای دستکاری و پردازش فرمت‌های مختلف فایل تصویر مانند JPEG، TIFF و غیره ارائه می‌دهد. برای نصب این API در پروژه .NET خود دو روش وجود دارد.

بنابراین، شما می‌توانید یا download فایل‌های DLL را دانلود کنید یا دستور زیر را در NuGet مدیریت بسته اجرا کنید.

Install-Package Aspose.Imaging

چگونه اندازه فایل PNG را با استفاده از C# کاهش دهیم

شما می‌توانید یک انبوه بزرگ از متدها و خصوصیات اینجا برای فشرده‌سازی فرمت‌های فایل تصویر ببینید. بنابراین، ما مراحل و کد نمونه‌ای برای فشرده‌سازی فایل PNG به‌طور برنامه‌نویسی خواهیم نوشت.

مراحل زیر را دنبال کنید:

  1. بارگذاری تصویر PNG منبع با فراخوانی روش Load .
  2. Invoke the Save method to save the compressed image in PNG format.
  3. مقدار ویژگی Progressive را تنظیم کنید که نشان می‌دهد آیا این PngOptions پیشرفته است یا خیر.
  4. IndexedColor نمایانگر نوع رنگی است که در آن هر پیکسل یک اندیس از پالت است.
  5. ارزش CompressionLevel را برای تنظیم حداکثر فشرده‌سازی اختصاص دهید.
  6. روش GetCloseImagePalette یک پالت رنگ از تصویر رستری دریافت خواهد کرد (تصویر را پالت می‌کند) در صورتی که تصویر پالت نداشته باشد. در صورتی که پالت وجود داشته باشد، به جای انجام محاسبات از آن استفاده خواهد شد.

کد نمونه زیر نشان می‌دهد که چگونه اندازه فایل PNG را در C# کاهش دهیم:

// با فراخوانی روش Load تصویر PNG منبع را بارگذاری کنید 
        using (Image image = Image.Load("image.png"))
        {
        // متد Save را برای ذخیره تصویر فشرده شده به فرمت PNG فراخوانی کنید  
            image.Save(out.png, new ImageOptions.PngOptions()
            {
            // یک مقدار از ویژگی Progressive را تنظیم کنید که نشان دهد آیا این PngOptions پیشرفته است.
                Progressive = true,
            // IndexedColor نمایانگر نوع رنگی است که در آن هر پیکسل یک ایندکس پالت است. 
                ColorType = FileFormats.Png.PngColorType.IndexedColor,
            // مقدار CompressionLevel را برای تعیین حداکثر فشردگی اختصاص دهید. 
                CompressionLevel = 9,
            // GetCloseImagePalette method will get color palette from raster image (palletizes image) in case the image does not have one. In case palette exists it will be used instead performing calculations. 
                Palette = ColorPaletteHelper.GetCloseImagePalette((RasterImage)image, 256, PaletteMiningMethod.Histogram)
            });
        }

فشرده سازی تصویر PNG - گزینه های پیشرفته

در بخش قبلی، ما یاد گرفتیم که چگونه اندازه فایل PNG را با استفاده از C# کاهش دهیم. حالا بیایید برخی دیگر از متدها و ویژگی‌های برجسته این API فشرده‌سازی تصویر را بررسی کنیم. در این بخش، ما یک تماس API سفارشی برای ایجاد یک فایل PNG به صورت برنامه‌نویسی انجام خواهیم داد.

شما می‌توانید مراحل و کد نمونه ذکر شده در زیر را دنبال کنید:

  1. یک نمونه از کلاس PngImage را راه‌اندازی کنید که یک تصویر PNG با ابعاد 100x100 پیکسل ایجاد کند.
  2. متد LinearGradientBrush یک قلم موی خطی با گرادیان خطی را محاصره می کند.
  3. یک نمونه جدید از ساختار Point را با مختصات مشخص شده راه‌اندازی می‌کند.
  4. یک نمونه از کلاس Graphics را ایجاد کنید که گرافیک را بر اساس موتور گرافیکی استفاده شده در اسمبلی جاری نمایان می‌کند.
  5. تصویر را با گرادیان آبی-شفاف پر کنید با روش FillRectangle.
  6. یک شی از کلاس PngOptions ایجاد کنید.
  7. مقدار خاصیت Progressive را تنظیم کنید که نشان می‌دهد آیا این PngOptions پیشرفته است یا خیر.
  8. شما می‌توانید وضوح افقی و عمودی را به ۹۶ پیکسل در اینچ با تنظیم کلاس ResolutionSetting تنظیم کنید.
  9. نوع رنگ را با اختصاص یک مقدار به خاصیت ColorType تنظیم کنید.
  10. به ویژگی CompressionLevel یک مقدار اختصاص دهید تا حداکثر سطح فشرده‌سازی را تعیین کنید.
  11. FilterType ویژگی نوع فیلتر را در حین فرآیند ذخیره فایل PNG تنظیم می‌کند.
  12. تعداد بیت‌ها در هر کانال را با تخصیص یک مقدار به ویژگی BitDepth تنظیم کنید.
  13. با فراخوانی روش Save فایل را ذخیره کنید.

کد نمونه زیر نحوه فشرده‌سازی تصویر PNG در C# را نشان می‌دهد:


    // ایجاد یک نمونه از کلاس PngImage که یک تصویر PNG با اندازه ۱۰۰x۱۰۰ پیکسل ایجاد کند. 
    using (Aspose.Imaging.FileFormats.Png.PngImage pngImage = new Aspose.Imaging.FileFormats.Png.PngImage(100, 100))
    {
        // متد LinearGradientBrush یک براش با گرادیان خطی را در بر می‌گیرد. 
        Aspose.Imaging.Brushes.LinearGradientBrush gradientBrush = new Aspose.Imaging.Brushes.LinearGradientBrush(
                // یک نمونه جدید از ساختار Point با مختصات مشخص شده را راه‌اندازی می‌کند. 
                new Aspose.Imaging.Point(0, 0),
                new Aspose.Imaging.Point(pngImage.Width, pngImage.Height),
                Aspose.Imaging.Color.Blue,
                Aspose.Imaging.Color.Transparent);
        // یک نمونه از کلاس Graphics را برای نمایش گرافیک مطابق با موتور گرافیکی که در اسمبلی فعلی استفاده می‌شود، ایجاد کنید.
        Aspose.Imaging.Graphics graphics = new Aspose.Imaging.Graphics(pngImage);

        // تصویر را با گرادینت آبی شفاف با استفاده از روش FillRectangle پر کنید. 
        graphics.FillRectangle(gradientBrush, pngImage.Bounds);
        // یک شیء از کلاس PngOptions ایجاد کنید 
        Aspose.Imaging.ImageOptions.PngOptions saveOptions = new Aspose.Imaging.ImageOptions.PngOptions();

        // مقدار خاصیت Progressive را تنظیم می‌کند که نشان می‌دهد آیا این PngOptions پیشرفته است یا خیر. 
        saveOptions.Progressive = true;

        // کلاس ResolutionSetting را برای تنظیم افقی و عمودی به ۹۶ پیکسل در اینچ مقداردهی کنید. 
        saveOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);

        // set the type of the color by assiging a value to the ColorType property .
        saveOptions.ColorType = Imaging.FileFormats.Png.PngColorType.TruecolorWithAlpha;

        // به ویژگی CompressionLevel یک مقدار اختصاص دهید تا حداکثر سطح فشرده‌سازی را تنظیم کنید. 
        saveOptions.CompressionLevel = 9;

        // خصوصیت FilterType نوع فیلتر مورد استفاده در فرآیند ذخیره فایل png را تعیین می‌کند.
        saveOptions.FilterType = Aspose.Imaging.FileFormats.Png.PngFilterType.Adaptive;

        // تعداد بیت‌های هر کانال را با تخصیص یک مقدار به خاصیت BitDepth تنظیم کنید.
        saveOptions.BitDepth = 8;

        // Save to a file by calling the Save method. 
        pngImage.Save( "output.png", saveOptions);
    }

شما می‌توانید خروجی را در تصویر زیر مشاهده کنید:

API فشرده‌سازی تصویر

مجوز رایگان بگیرید

شما می‌توانید یک مجوز موقت رایگان برای آزمایش API بدون محدودیت‌های ارزیابی دریافت کنید.

جمع‌بندی

ما می‌توانیم این پست وبلاگ را اینجا به پایان برسانیم. امیدواریم که یاد گرفته باشید چگونه اندازه فایل PNG را به صورت برنامه‌نویسی با C# کاهش دهید. علاوه بر این، ما به برخی از روش‌های پیشرفته دیگر این API فشرده‌سازی تصویر PNG پرداخته‌ایم که در آن یک فایل PNG بهینه‌سازی شده ایجاد کرده‌ایم. با این حال، شما می‌توانید به این link برای روش‌ها و ویژگی‌های بیشتر در مورد فرمت فایل PNG مراجعه کنید. از همه مهمتر، documentation این کتابخانه .NET را برای آشنایی با اکوسیستم فراموش نکنید. ما در پست‌های وبلاگ آینده در مورد موضوعات مفید دیگری خواهیم نوشت. بنابراین، با conholdate.com برای دریافت به‌روزرسانی‌ها در ارتباط باشید.

Ask a question

شما می‌توانید سوالات یا پرسش‌های خود را در forum به ما بگویید.

FAQs

چگونه تصویر PNG را در سی شارپ فشرده کنیم؟ این .NET image compression API را نصب کنید تا فرمت‌های فایل PNG را فشرده‌سازی و دستکاری کنید. این API روش‌ها و ویژگی‌هایی را برای فشرده‌سازی فرمت‌های محبوب دیگر فایل‌های تصویری مانند JPEG، TIFF و غیره ارائه می‌دهد.

چگونه می‌توان اندازه فایل تصویر را برای فرمت PNG کاهش داد؟

این method به شما امکان می‌دهد که اندازه فایل PNG را به‌صورت برنامه‌نویسی با استفاده از C# کاهش دهید. علاوه بر این، می‌توانید تماس API را طبق نیازهای خود پیکربندی کنید.

چگونه یک تصویر PNG را در مثال کد C# تغییر اندازه دهیم؟

به این link مراجعه کنید تا درباره قطعه کد که به صورت برنامه‌نویسی یک تصویر PNG را تغییر اندازه می‌دهد، اطلاعات بیشتری کسب کنید. این API .NET قدرتمند است و مجموعه گسترده‌ای از متدها و ویژگی‌ها را ارائه می‌دهد.

See Also