BufferSizeHint

ImageOptionsBase.BufferSizeHint property

الحصول على أو تعيين تلميح حجم المخزن المؤقت الذي تم تحديده بالحجم الأقصى المسموح به لجميع المخازن المؤقتة الداخلية.

public int BufferSizeHint { get; set; }

Property_Value

تلميح حجم المخزن المؤقت بالميغابايت . القيمة غير الموجبة تعني عدم وجود قيود على الذاكرة للمخازن المؤقتة الداخلية

أمثلة

يوضح المثال التالي كيفية تعيين حد للذاكرة عند إنشاء صورة JPEG جديدة. حد الذاكرة هو الحد الأقصى للحجم المسموح به (بالميغابايت) لجميع المخازن المؤقتة الداخلية.

[C#]

string dir = "c:\\aspose.imaging\\issues\\net\\3404\\";

// تعيين حد ذاكرة 50 ميغا بايت للصورة التي تم إنشاؤها الهدف
Aspose.Imaging.ImageOptionsBase createOptions = new Aspose.Imaging.ImageOptions.JpegOptions
{
    CompressionType = Aspose.Imaging.FileFormats.Jpeg.JpegCompressionMode.Progressive,
    BufferSizeHint = 50,
    Source = new Aspose.Imaging.Sources.FileCreateSource(dir + "createdFile.jpg", false),
};
    
using (var image = Aspose.Imaging.Image.Create(createOptions, 1000, 1000))
{
    image.Save(); // حفظ في نفس الموقع
}

يوضح المثال التالي كيفية تعيين حد للذاكرة عند إنشاء صورة PNG ورسم رسومات معقدة عليها. حد الذاكرة هو الحد الأقصى للحجم المسموح به (بالميغابايت) لجميع المخازن المؤقتة الداخلية.

[C#]

string dir = "c:\\aspose.imaging\\issues\\net\\3383\\";

const int ImageSize = 2000;
Aspose.Imaging.ImageOptionsBase createOptions = new Aspose.Imaging.ImageOptions.PngOptions();
createOptions.Source = new Aspose.Imaging.Sources.FileCreateSource(dir + "graphics_simple.png", false);
createOptions.BufferSizeHint = 30; // حد الذاكرة 30 ميغا بايت

using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Create(createOptions, ImageSize, ImageSize))
{
    Aspose.Imaging.Graphics graphics = new Aspose.Imaging.Graphics(image);
    // يمكنك استخدام أي عمليات رسومية هنا ، وسيتم تنفيذها جميعًا ضمن حد الذاكرة المحدد
    // فمثلا:
    graphics.Clear(Aspose.Imaging.Color.LightSkyBlue);
    graphics.DrawLine(new Aspose.Imaging.Pen(Aspose.Imaging.Color.Red, 3f), 0, 0, image.Width, image.Height);

    image.Save();
}

// يتم أيضًا دعم عدد كبير من عمليات الرسم:
const int OperationAreaSize = 10;
createOptions = new Aspose.Imaging.ImageOptions.PngOptions();
createOptions.Source = new Aspose.Imaging.Sources.FileCreateSource(dir + "graphics_complex.png", false);
createOptions.BufferSizeHint = 30; // حد الذاكرة 30 ميغا بايت

using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Create(createOptions, ImageSize, ImageSize))
{
    Aspose.Imaging.Graphics graphics = new Aspose.Imaging.Graphics(image);
    graphics.BeginUpdate();
    graphics.Clear(Aspose.Imaging.Color.LightSkyBlue);

    int x, y;
    int numberOfOperations = 0;
    for (int column = 0; column * OperationAreaSize < ImageSize; column++)
    {
        for (int row = 0; row * OperationAreaSize < ImageSize; row++)
        {
            x = column * OperationAreaSize;
            y = row * OperationAreaSize;

            bool reversed = (column + row) % 2 != 0;
            if (reversed)
            {
                graphics.DrawLine(
                    new Aspose.Imaging.Pen(Aspose.Imaging.Color.Red),
                    x + OperationAreaSize - 2,
                    y,
                    x,
                    y + OperationAreaSize);
            }
            else
            {
                graphics.DrawLine(
                    new Aspose.Imaging.Pen(Aspose.Imaging.Color.Red),
                    x,
                    y,
                    x + OperationAreaSize - 2,
                    y + OperationAreaSize);
            }

            numberOfOperations++;
        }
    }

    // سيتم تطبيق حوالي 40 ألف عملية هنا ، في حين أنها لا تستهلك الكثير من الذاكرة 
    // نظرًا لأنه تم تفريغها بالفعل في الملف الخارجي ، وسيتم تحميلها من هناك واحدًا تلو الآخر
    graphics.EndUpdate();

    image.Save();
}

أنظر أيضا