←Select platform

RasterRleCompressor Class

Summary
Provides support for working with compressed image data buffers.
Syntax
C#
Objective-C
C++/CLI
Python
public static class RasterRleCompressor 
@interface LTRasterRleCompressor : NSObject 
public ref class RasterRleCompressor abstract sealed  
class RasterRleCompressor: 
Example
C#
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 GetRowColumnCompressedExample() 
{ 
	RasterCodecs codecs = new RasterCodecs(); 
	// Load the bitmap, at 1 bit per pixel, compressed 
	codecs.Options.Load.Compressed = true; 
	RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "OCR1.TIF"), 1, Leadtools.Codecs.CodecsLoadByteOrder.Bgr, 1, 1); 
 
	int xOffset;   // Column offset of the rectangle to process. 
	int xSize;     // Pixel width of the rectangle to process. 
	int yOffset;   // Row offset of the rectangle to process. 
	int ySize;     // Pixel height of the rectangle to process. 
	int i, n;       // Counters. 
 
	byte[] buffer;      // Buffer to hold the expanded row. 
	ushort[] runBuffer; // Buffer to hold the compressed row. 
	byte[] workBuffer;  // Work buffer. 
 
	// This example does not work with rotated view perspectives. 
	if ((image.ViewPerspective != RasterViewPerspective.TopLeft) || (image.ViewPerspective != RasterViewPerspective.BottomLeft)) 
		image.ChangeViewPerspective(RasterViewPerspective.TopLeft); 
 
	// Specify a rectangle in the middle right part of the displayed image. 
	xOffset = image.Width / 3; 
	xSize = image.Width - xOffset; 
	yOffset = image.Height / 3; 
	ySize = image.Height / 3; 
	// Adjust the YOffset if the view perspective is bottom left. 
	if (image.ViewPerspective == RasterViewPerspective.BottomLeft) 
	{ 
		yOffset = image.Height - yOffset - ySize; 
	} 
 
	if (image.IsGlobalMemory) 
		image.Access(); 
	// Allocate the buffers. 
	buffer = new Byte[(xSize + 7) / 8]; 
	runBuffer = new ushort[(xSize + 3) * 2]; 
	workBuffer = new Byte[image.BytesPerLine]; 
	// Invert the colors of pixels in the left half of the rectangle. 
	// Notice that we get the whole rectangle, but process only half of it. 
	for (i = yOffset; i < (yOffset + ySize); i++) 
	{ 
		image.GetRowColumnCompressed(workBuffer, runBuffer, 0, i, xOffset, xSize); 
		RasterRleCompressor.ExpandRow(runBuffer, buffer, 0, 0, xSize); 
		for (n = 0; n < (xSize / 16); n++) 
			buffer[n] ^= 0xFF; 
		RasterRleCompressor.CompressRow(runBuffer, buffer, 0, 0, xSize); 
		image.SetRowColumnCompressed(workBuffer, runBuffer, 0, i, xOffset, xSize); 
 
	} 
	if (image.IsGlobalMemory) 
		image.Release(); 
 
	codecs.Save(image, Path.Combine(LEAD_VARS.ImagesDir, "IMAGE1_getrowcolcompresed.BMP"), RasterImageFormat.Bmp, 0); 
 
	image.Dispose(); 
	codecs.Dispose(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images"; 
} 
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.