←Select platform

RasterBufferResize Class

Summary
Provides support for resizing image data buffers.
Syntax
C#
C++/CLI
Python
public class RasterBufferResize 
public ref class RasterBufferResize  
class RasterBufferResize: 
Example

This example will load an image, resizes each line then saves the resized image back to disk.

C#
using Leadtools; 
using Leadtools.Codecs; 
 
 
public void RasterBufferResizeExample() 
{ 
	string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp"); 
	string destFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1_resized.bmp"); 
 
	using (RasterCodecs codecs = new RasterCodecs()) 
	{ 
		codecs.ThrowExceptionsOnInvalidImages = true; 
 
		// Load the source image 
		using (RasterImage srcImage = codecs.Load(srcFileName)) 
		{ 
			int destWidth = srcImage.Width / 2; 
			int destHeight = srcImage.Height / 2; 
 
			// Create the destination image 
			using (RasterImage destImage = new RasterImage( 
			   RasterMemoryFlags.Conventional, 
			   destWidth, 
			   destHeight, 
			   srcImage.BitsPerPixel, 
			   srcImage.Order, 
			   srcImage.ViewPerspective, 
			   srcImage.GetPalette(), 
			   IntPtr.Zero, 
			   0)) 
			{ 
 
				// allocate buffer for one scanline from source image 
				byte[] scanLine = new byte[srcImage.BytesPerLine]; 
 
				// resize it 
				RasterBufferResize bufferResize = new RasterBufferResize(); 
 
				// Initialize the resize process. 
				bufferResize.Start(srcImage.Width, srcImage.Height, destImage.Width, destImage.Height); 
 
				srcImage.Access(); 
				destImage.Access(); 
 
				// Current destination row number 
				int destRow = 0; 
				for (int i = 0; i < srcImage.Height; i++) 
				{ 
					// Get a scanline from the source image and resize it 
					srcImage.GetRow(i, scanLine, 0, srcImage.BytesPerLine); 
					bufferResize.ResizeBuffer(scanLine, 0, i, srcImage.BitsPerPixel); 
 
					// Output as many or as few rows as ResizeBuffer supplies 
					for (int j = 0; j < bufferResize.CopyRepetitions; j++) 
					{ 
						destImage.SetRow(destRow, scanLine, 0, bufferResize.LineWidth * 3); 
						destRow++; 
					} 
				} 
 
				destImage.Release(); 
				srcImage.Release(); 
 
				bufferResize.Stop(); 
 
				// Save the destination image 
				codecs.Save(destImage, destFileName, RasterImageFormat.Bmp, 24); 
			} 
		} 
	} 
} 
 
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.