public int ConventionalBuffers { get; set; }
ConventionalBuffers # get and set (RasterMemoryThreshold)
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).
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.
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);
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document