public void GetRowCompressed(IntPtr workBuffer,IntPtr runBuffer,int row,int lines)
public void getRowCompressed(byte[] workBuffer,short[] runBuffer,int row,int lines)
public:void GetRowCompressed(IntPtr workBuffer,IntPtr runBuffer,int row,int lines)
def GetRowCompressed(self,workBuffer,runBuffer,row,lines):
workBuffer
Pointer to optional work unmanaged memory buffer. Allocating the work buffer speeds processing if you call this method more than once, because if you do not allocate a work buffer, the method allocates and frees a temporary buffer each time it is called. bytes required = lines * ((RasterImage-Width.html) + 3) * 2). Pass IntPtr.Zero for workBuffer if you do not want to use the work buffer
runBuffer
Pointer to the output unmanaged memory buffer, which will be filled with 1-bit compressed image data.
row
The number of the row to retrieve. The first row is 0, and the last row is 1 less than the image height.
lines
Number of rows to retrieve.
This method is available in the (Document/Medical only) Toolkits.
This method is useful for working with 1-bit images that are loaded in their compressed formats for faster loading and display.
For more information, refer to Speeding Up 1-Bit Documents.
This example demonstrates the low-level methods for accessing 1-bit compressed image data. It demonstrates the ability to get and put rows, and the ability to process rows in buffer-to-buffer processing. The result of the function is an the first 50 lines are inverted.
using Leadtools;using Leadtools.Codecs;using Leadtools.ImageProcessing;using Leadtools.ImageProcessing.Core;using Leadtools.ImageProcessing.Color;using Leadtools.Dicom;using Leadtools.Drawing;using Leadtools.Controls;using Leadtools.Svg;public void GetRowCompressedExample(){RasterCodecs codecs = new RasterCodecs();// Load the bitmap, at 1 bit per pixel, compressedcodecs.Options.Load.Compressed = true;RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "OCR1.TIF"), 1, Leadtools.Codecs.CodecsLoadByteOrder.Bgr, 1, 1);// This example does not work with rotated view perspectives.if ((image.ViewPerspective != RasterViewPerspective.TopLeft) || (image.ViewPerspective != RasterViewPerspective.BottomLeft))image.ChangeViewPerspective(RasterViewPerspective.TopLeft);// Adjust the YOffset if the view perspective is bottom left.int nRow = 500; // first row to get.int nYSize = 500; // number of rows to get.if (image.ViewPerspective == RasterViewPerspective.BottomLeft)nRow = image.Height - nRow - nYSize;// Allocate the buffers.byte[] pBuffer = new byte[Convert.ToInt32((((image.Width + 31) & ~(31)) / 8)) * nYSize]; // Buffer to hold the expanded row.ushort[] pRunBuffer = new ushort[((image.Width + 3) * 2) * nYSize]; // Buffer to hold the compressed row.if (image.IsGlobalMemory)image.Access();// Get the top nRow lines.image.GetRowCompressed(null, pRunBuffer, 0, nRow, nYSize);// Expand the compressed data.RasterRleCompressor.ExpandRows(pRunBuffer, pBuffer, 0, image.Width, nYSize);// Invert the data.for (int n = 0; n < (image.BytesPerLine * nYSize); n++)pBuffer[n] ^= 0xff;// Compress the inverted data.RasterRleCompressor.CompressRows(pRunBuffer, pBuffer, 0, image.Width, nYSize);// Put the inverted, compressed data back into the image.image.SetRowCompressed(null, pRunBuffer, 0, nRow, nYSize);if (image.IsGlobalMemory)image.Release();codecs.Save(image, Path.Combine(LEAD_VARS.ImagesDir, "IMAGE1_getrowcompresed.BMP"), RasterImageFormat.Bmp, 0);image.Dispose();codecs.Dispose();}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
