public int Width { get; }
@property (nonatomic, assign, readonly) NSInteger width;
public int getWidth();
public:
property int Width {
int get();
}
Width # get (RasterImageAllocateData)
The width of the RasterImage object being created in pixels.
You cannot change the width, height, bits/pixel, order or size of the RasterImage object being created. You can however inspect and change the memory model (conventional, disk, tiled, etc.).
using Leadtools;
using Leadtools.Codecs;
private void SetRasterImageAllocateCallbackExample()
{
try
{
// Set the LEADTOOLS temporary directory to a value we can watch easily
RasterDefaults.TemporaryDirectory = Path.Combine(LEAD_VARS.ImagesDir, @"Temp\LEADTOOLS");
// Install a callback to notify us when LEADTOOLS images are created
// IMPORTANT: SetRasterImageAllocateCallback is global and not thread safe. It will fire
// for each image being created after this point, so if the action you are performing in the
// callback requires synchronzation, add the required code. For what this sample is trying
// to accomplish, our solution is perfectly safe and no synchronization is needed.
RasterDefaults.SetRasterImageAllocateCallback(new RasterImageAllocateCallback(MyRasterImageAllocateCallback));
// We want conventional memory and nothing else
RasterMemoryFlags flags = RasterMemoryFlags.Conventional | RasterMemoryFlags.NoDisk | RasterMemoryFlags.NoTiled;
// Create a huge RasterImage
using (RasterImage img = new RasterImage(flags, 20000, 20000, 24, RasterByteOrder.Bgr, RasterViewPerspective.TopLeft, null, null, 0))
{
// Rotate it 90 degrees, this will have a memory size greater than the default
// size of conventional memory and cause LEADTOOLS to switch to a disk or tiled memory
// model. In the callback below, we instruct LEADTOOLS to only use conventional memory so the command
// will throw an out of memory exception as expected.
Leadtools.ImageProcessing.RotateCommand cmd = new Leadtools.ImageProcessing.RotateCommand();
cmd.Angle = 90 * 100;
// Exception will be thrown inside here: No Memory since our callback
// will be called and we instruct LEADTOOLS to not use disk
cmd.Run(img);
}
}
catch (Exception ex)
{
// Show the error
Console.WriteLine(ex.Message);
}
}
private static RasterExceptionCode MyRasterImageAllocateCallback(RasterImageAllocateData data)
{
Console.WriteLine("Trying to allocate:");
Console.WriteLine(" Memory: {0}", data.MemoryFlags);
Console.WriteLine(" Size: {0} by {1}", data.Width, data.Height);
Console.WriteLine(" BPP: {0}, Order: {1}", data.BitsPerPixel, data.Order);
Console.WriteLine(" Size: {0}", data.Size);
// Note, all values beside MemoryFlags are read only and cannot be changed
// We want conventional memory and nothing else, so change this
data.MemoryFlags = RasterMemoryFlags.Conventional | RasterMemoryFlags.NoTiled | RasterMemoryFlags.NoDisk;
// If you remove the code above, the toolkit will most probably switch to disk or tiled memory model
// and creating this huge image will be successful, however, we only want conventional
// memory in this example, and out of memory exception is the expected behavior of this
// example
// Let LEADTOOLS continue with creating the image process
// You can return any other value to abort
return RasterExceptionCode.Success;
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images";
}
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
Your email has been sent to support! Someone should be in touch! If your matter is urgent please come back into chat.
Chat Hours:
Monday - Friday, 8:30am to 6pm ET
Thank you for your feedback!
Please fill out the form again to start a new chat.
All agents are currently offline.
Chat Hours:
Monday - Friday
8:30AM - 6PM EST
To contact us please fill out this form and we will contact you via email.