←Select platform

ConventionalBuffers Property

Summary
Gets or sets a value that specifies the number of buffers in conventional memory that will cache the disk tiles.
Syntax
C#
C++/CLI
Python
public int ConventionalBuffers { get; set; } 
public: 
property int ConventionalBuffers { 
   int get(); 
   void set (    int ); 
} 
ConventionalBuffers # get and set (RasterMemoryThreshold) 

Property Value

An integer value that specifies the number of buffers in conventional memory that will cache the disk tiles. Default is 1 (one swap buffer will be used to cache the disk tiles).

Remarks

ConventionalBuffers is used when working with tiled images which have disk tiles. The swap buffers will greatly improve the access to these disk tiles.

If the ConventionalBuffers value is > 0, ConventionalBuffers indicates the number of swap buffers.

If the ConventionalBuffers value is < 0, -ConventionalBuffers indicates the percentage of the total of disk tiles. For example, -50 means the number of buffers is half of the disk tiles will be used.

If the ConventionalBuffers value is 0, no swap buffers will be used. This uses the least amount of memory.

It is useful to have more than one swap buffer when you have an algorithm that constantly reads data going up and down. Usually, the data is read in one direction (from top to bottom or bottom to top) - in this case, one swap buffer will be enough. Also, if you only view a certain portion of the image, you might benefit from having enough swap buffers to cache the visible portion of the image (or the image's region).

The buffers are dynamic: when data is being read/written to a disk tile, a cache buffer is created (if permitted and there is enough memory). If the maximum number of cache buffers for that image has been reached, the cache buffer for the last used tile will be deleted and used for the new tile.

Example
C#
using Leadtools; 
using Leadtools.Codecs; 
 
 
public void RasterDefaultsExample() 
{ 
	// Set the limit for RasterImage object allocations 
	RasterMemoryThreshold threshold = RasterDefaults.MemoryThreshold; 
	threshold.MaximumGlobalRasterImageMemory = 20 * 1000 * 1024; 
	RasterDefaults.MemoryThreshold = threshold; 
 
	ShowValues(); 
 
	// Create a raster image with current DPI 
	RasterImage image1 = new RasterImage( 
	   RasterMemoryFlags.Conventional, 
	   100, 
	   100, 
	   24, 
	   RasterByteOrder.Bgr, 
	   RasterViewPerspective.TopLeft, 
	   null, 
	   IntPtr.Zero, 
	   0); 
	Console.WriteLine("Resolution of created image is {0} by {1} DPI", image1.XResolution, image1.YResolution); 
 
	// Change the resolution 
	int xOldResolution = RasterDefaults.XResolution; 
	int yOldResolution = RasterDefaults.YResolution; 
	int xNewResolution = 196; 
	int yNewResolution = 196; 
	RasterDefaults.XResolution = xNewResolution; 
	RasterDefaults.YResolution = yNewResolution; 
	ShowValues(); 
 
	// Create another raster image 
	// Create a raster image with current DPI 
	RasterImage image2 = new RasterImage( 
	   RasterMemoryFlags.Conventional, 
	   100, 
	   100, 
	   24, 
	   RasterByteOrder.Bgr, 
	   RasterViewPerspective.TopLeft, 
	   null, 
	   IntPtr.Zero, 
	   0); 
	Console.WriteLine("Resolution of created image is {0} by {1} DPI", image2.XResolution, image2.YResolution); 
	Debug.Assert(image2.XResolution == xNewResolution); 
	Debug.Assert(image2.YResolution == yNewResolution); 
 
	// Reset old values 
	RasterDefaults.XResolution = xOldResolution; 
	RasterDefaults.YResolution = yOldResolution; 
 
	image1.Dispose(); 
	image2.Dispose(); 
} 
 
void ShowValues() 
{ 
	Console.WriteLine("Current defaults:"); 
	Console.WriteLine("MaximumThreadCount: {0}", RasterDefaults.MaximumThreadCount); 
	Console.WriteLine("XResolution: {0}", RasterDefaults.XResolution); 
	Console.WriteLine("YResolution: {0}", RasterDefaults.YResolution); 
	Console.WriteLine("DitheringMethod: {0}", RasterDefaults.DitheringMethod); 
	Console.WriteLine("MemoryFlags: {0}", RasterDefaults.MemoryFlags); 
 
	RasterMemoryThreshold threshold = RasterDefaults.MemoryThreshold; 
	Console.WriteLine("MemoryThreshold.TiledThreshold: {0}", threshold.TiledThreshold); 
	Console.WriteLine("MemoryThreshold.MaximumConventionalSize: {0}", threshold.MaximumConventionalSize); 
	Console.WriteLine("MemoryThreshold.TileSize: {0}", threshold.TileSize); 
	Console.WriteLine("MemoryThreshold.ConventionalTiles: {0}", threshold.ConventionalTiles); 
	Console.WriteLine("MemoryThreshold.ConventionalBuffers: {0}", threshold.ConventionalBuffers); 
	Console.WriteLine("MemoryThreshold.MaximumGlobalRasterImageMemory: {0}", threshold.MaximumGlobalRasterImageMemory); 
 
	Console.WriteLine("TemporaryDirectory: {0}", RasterDefaults.TemporaryDirectory); 
} 
Requirements

Target Platforms

Help Version 22.0.2023.5.16
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

Leadtools Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.