CompressionLevel

PngOptions.CompressionLevel property

مستوى ضغط الصورة png في النطاق من 0 إلى 9 ، حيث يمثل 9 أقصى ضغط ويكون 0 هو وضع التخزين.

public int CompressionLevel { get; set; }

أمثلة

يوضح المثال التالي كيفية ضغط صورة PNG ، باستخدام لون مفهرس مع أفضل لوحة ملائمة

[C#]

// تحميل صورة png        
    string  sourceFilePath="OriginalRings.png";
    string  outputFilePath="OriginalRingsOutput.png";
    using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(sourceFilePath))
{
    image.Save(outputFilePath, new Aspose.Imaging.ImageOptions.PngOptions()
    {
         Progressive = true,
             // استخدم نوع اللون المفهرس
         ColorType = Aspose.Imaging.FileFormats.Png.PngColorType.IndexedColor,
             // استخدم أقصى ضغط
         CompressionLevel = 9,
      // احصل على أقرب لوحة ألوان 8 بت تغطي أكبر عدد ممكن من وحدات البكسل ، بحيث تكون الصورة ملوّنة
         // يكاد لا يمكن تمييزه بصريًا عن غير المنقول.
         Palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette((Aspose.Imaging.RasterImage)image, 256, Aspose.Imaging.PaletteMiningMethod.Histogram)
    });
}
    // يجب تقليل حجم الملف الناتج بشكل كبير

يوضح هذا المثال كيفية إنشاء صورة PNG بالخيارات المحددة ، وتعبئتها بألوان متدرجة خطية وحفظها في ملف.

[C#]

string dir = "c:\\temp\\";

Aspose.Imaging.ImageOptions.PngOptions createOptions = new Aspose.Imaging.ImageOptions.PngOptions();

// عدد البتات لكل قناة لون
createOptions.BitDepth = 8;

// كل بكسل عبارة عن ثلاثية (حمراء ، خضراء ، زرقاء) متبوعة بمكون ألفا.
createOptions.ColorType = Imaging.FileFormats.Png.PngColorType.TruecolorWithAlpha;

// الحد الأقصى لمستوى الضغط.
createOptions.CompressionLevel = 9;

// يسمح استخدام المرشحات بضغط الصور ذات الدرجة اللونية المستمرة بشكل أكثر فعالية.
createOptions.FilterType = Aspose.Imaging.FileFormats.Png.PngFilterType.Sub;

// استخدم التحميل التدريجي
createOptions.Progressive = true;

// إنشاء صورة PNG مع معلمات مخصصة.
using (Aspose.Imaging.FileFormats.Png.PngImage pngImage = new Aspose.Imaging.FileFormats.Png.PngImage(createOptions, 100, 100))
{
    Aspose.Imaging.Brushes.LinearGradientBrush gradientBrush = new Aspose.Imaging.Brushes.LinearGradientBrush(
            new Aspose.Imaging.Point(0, 0),
            new Aspose.Imaging.Point(pngImage.Width, pngImage.Height),
            Aspose.Imaging.Color.Blue,
            Aspose.Imaging.Color.Transparent);

    Aspose.Imaging.Graphics graphics = new Aspose.Imaging.Graphics(pngImage);

    // املأ الصورة بتدرج شبه شفاف.
    graphics.FillRectangle(gradientBrush, pngImage.Bounds);

    // حفظ في ملف.
    pngImage.Save(dir + "output.explicitoptions.png");
}

يوضح المثال التالي كيفية حفظ صورة بتنسيق PNG باستخدام خيارات متنوعة.

[C#]

string dir = "c:\\temp\\";

// أنشئ صورة PNG بحجم 100 × 100 بكسل.
// يمكنك أيضًا تحميل صورة بأي تنسيق مدعوم من ملف أو دفق.
using (Aspose.Imaging.FileFormats.Png.PngImage pngImage = new Aspose.Imaging.FileFormats.Png.PngImage(100, 100))
{
    Aspose.Imaging.Brushes.LinearGradientBrush gradientBrush = new Aspose.Imaging.Brushes.LinearGradientBrush(
            new Aspose.Imaging.Point(0, 0),
            new Aspose.Imaging.Point(pngImage.Width, pngImage.Height),
            Aspose.Imaging.Color.Blue,
            Aspose.Imaging.Color.Transparent);

    Aspose.Imaging.Graphics graphics = new Aspose.Imaging.Graphics(pngImage);

    // املأ الصورة بالتدرج اللوني الأزرق الشفاف.
    graphics.FillRectangle(gradientBrush, pngImage.Bounds);

    Aspose.Imaging.ImageOptions.PngOptions saveOptions = new Aspose.Imaging.ImageOptions.PngOptions();

    // التحميل التدريجي.
    saveOptions.Progressive = true;

    // اضبط الدقة الأفقية والعمودية على 96 بكسل لكل بوصة.
    saveOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);

    // كل بكسل عبارة عن ثلاثية (حمراء ، خضراء ، زرقاء) متبوعة بألفا.
    saveOptions.ColorType = Imaging.FileFormats.Png.PngColorType.TruecolorWithAlpha;

    // تعيين الحد الأقصى لمستوى الضغط.
    saveOptions.CompressionLevel = 9;

    // هذا هو أفضل ضغط ، لكنه أبطأ وقت تنفيذ.
    // التصفية التكيفية تعني أن عملية الحفظ ستختار مرشحًا أكثر قابلية للتغير لكل صف بيانات.
    saveOptions.FilterType = Aspose.Imaging.FileFormats.Png.PngFilterType.Adaptive;

    // عدد البتات لكل قناة.
    saveOptions.BitDepth = 8;

    // حفظ في ملف.
    pngImage.Save(dir + "output.png", saveOptions);
}

أنظر أيضا