Leadtools Send comments on this topic. | Back to Introduction - All Topics | Help Version 15.3.5
GetRow(Int32,IntPtr,Int32) Method
See Also 
Leadtools Namespace > RasterImage Class > GetRow Method : GetRow(Int32,IntPtr,Int32) Method




row
The number of the row to retrieve. The first row is 0, and the last row is 1 less than the image height.
buffer
Pointer to an unmanaged memory buffer to hold the image data that this method gets. The size of this buffer must be large enough to hold the image data.
bufferCount

The number of bytes in the row to retrieve. To get a full row, use the value in the BytesPerLine property

When getting less than full row, you must consider the bits per pixel. For a 1-bit image, each byte represents 8 pixels. For a 4-bit image, each byte represents 2 pixels. For an 8-bit image, each byte represents 1 pixel. For a 16-bit image, every 2 bytes represents one pixel. For 24-bit images, every three bytes represents one pixel. For a 32-bit image, every four bytes represents one pixel. For 48-bit images, every six bytes represents one pixel. For 64-bit images, every eight bytes represents one pixel.

You can use the BitsPerPixel property with integer math to calculate the number of bytes needed for a particular number of pixels. For example:


NumberOfBytes = (Image.BitsPerPixel * NumberOfPixels) / 8;
if((Image.BitsPerPixel * NumberOfPixels) % 8)
   NumberOfBytes = NumberOfBytes + 1; // Round up if necessary for a 1- or 4-bit image

Retrieves a row or more of image data from this RasterImage into un unmanaged memory buffer.

Syntax

Visual Basic (Declaration) 
Public Overloads Function GetRow( _
   ByVal row As Integer, _
   ByVal buffer As IntPtr, _
   ByVal bufferCount As Integer _
) As Integer
Visual Basic (Usage)Copy Code
Dim instance As RasterImage
Dim row As Integer
Dim buffer As IntPtr
Dim bufferCount As Integer
Dim value As Integer
 
value = instance.GetRow(row, buffer, bufferCount)
C# 
public int GetRow( 
   int row,
   IntPtr buffer,
   int bufferCount
)
Managed Extensions for C++ 
public: int GetRow( 
   int row,
   IntPtr buffer,
   int bufferCount
) 
C++/CLI 
public:
int GetRow( 
   int row,
   IntPtr buffer,
   int bufferCount
) 

Parameters

row
The number of the row to retrieve. The first row is 0, and the last row is 1 less than the image height.
buffer
Pointer to an unmanaged memory buffer to hold the image data that this method gets. The size of this buffer must be large enough to hold the image data.
bufferCount

The number of bytes in the row to retrieve. To get a full row, use the value in the BytesPerLine property

When getting less than full row, you must consider the bits per pixel. For a 1-bit image, each byte represents 8 pixels. For a 4-bit image, each byte represents 2 pixels. For an 8-bit image, each byte represents 1 pixel. For a 16-bit image, every 2 bytes represents one pixel. For 24-bit images, every three bytes represents one pixel. For a 32-bit image, every four bytes represents one pixel. For 48-bit images, every six bytes represents one pixel. For 64-bit images, every eight bytes represents one pixel.

You can use the BitsPerPixel property with integer math to calculate the number of bytes needed for a particular number of pixels. For example:


NumberOfBytes = (Image.BitsPerPixel * NumberOfPixels) / 8;
if((Image.BitsPerPixel * NumberOfPixels) % 8)
   NumberOfBytes = NumberOfBytes + 1; // Round up if necessary for a 1- or 4-bit image

Return Value

The number of bytes copied.

Example

For an example, refer to GetRow

Remarks

This method copies image data from the RasterImage object to a buffer that you specify. The data is copied exactly as it is stored in the image. The image memory must be locked when you use this method. Normally, you can call Access to lock the memory before starting an operation that uses this method, then call Release when the operation is finished.

Use the BytesPerLine property of the RasterImage object to determine the byte count of each line. Color order is determined by the Order property. This value can be RasterByteOrder.Rgb, RasterByteOrder.Bgr, RasterByteOrder.Gray or RasterByteOrder.RommRasterByteOrder.Gray is only valid for 12 and 16-bit grayscale images. Support for 12 and 16-bit grayscale images is only available in the Document/Medical Imaging editions.

Requirements

Target Platforms: Microsoft .NET Framework 2.0, Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

See Also