←Select platform

CopyRepetitions Property

Summary
Holds the required number of copy repetitions.
Syntax
C#
C++/CLI
Python
public int CopyRepetitions { get; } 
public: 
property int CopyRepetitions { 
   int get(); 
} 
CopyRepetitions # get  (RasterBufferResize) 

Property Value

The number of times needed to copy the new resized line buffer to the new image.

Remarks

When an image is being enlarged, some lines must be copied more than once. When an image is being reduced, some lines must be eliminated (not copied at all).

For example:

  • A value of 0 means that the line should not be copied.
  • A value of 1 means that the line should be copied once.
  • A value of 2 means that the line should be copied twice.
  • And so on ....
Example
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.