virtual L_INT LBitmapBase::GetPixelData(pData, nRow, nCol, nBytes)
Gets the data of the specified pixel. No transformations are performed on the pixel data.
Pointer to a buffer to be updated with the pixel data. This buffer should be able to store nBytes bytes.
The row number of the pixel.
The column number of the pixel.
Size of the buffer pointed to by pData. The size should be large enough to contain the data for the pixel. The minimum size can be calculated with the following formula: (LBitmapBase::GetBitsPerPixel + 7) / 8.
Value | Meaning |
---|---|
SUCCESS | The function was successful. |
< 1 | An error occurred. Refer to Return Codes. |
This function should be called only for 8, 16, 24, 32, 48 and 64-bit bitmaps:
For 8-bit bitmaps, this function will retrieve the palette index for the specified pixel.
For 16-bit bitmaps, the function will retrieve the 2-byte value that forms the pixel.
For grayscale 16-bit bitmaps, the data will contain the gray value. LowBit and HighBit members of the BITMAPHANDLE structure indicate the valid pixel data.
For color 16-bit bitmaps, the data contains packed 5-bit R, G and B values. The high bit contains the alpha information. The Order member in BITMAPHANDLE structure determines whether the data is RGB or BGR.
For 24-bit bitmaps, the function will retrieve the 3 bytes containing the pixel color. The Order member in BITMAPHANDLE structure determines whether the data is RGB or BGR.
For 32-bit bitmaps, the function will retrieve the 4 bytes containing the pixel color and alpha information. The first 3 bytes contain the pixel color. The Order member in BITMAPHANDLE structure determines whether the data in the first 3 bytes is RGB or BGR. The 4th byte is the alpha channel information. If the bitmap is 32-bit grayscale, the 4 bytes contain the entire 32-bit gray value.
For 48-bit bitmaps, the function will retrieve the 6 bytes containing the pixel color. The Order member in BITMAPHANDLE structure determines whether the data is RGB or BGR. Each color component is stored as a 16-bit value, where 0 corresponds to black and 0xFFFF corresponds to full white.
For 64-bit bitmaps, the function will retrieve the 8 bytes containing the pixel color and alpha information. The Order member in BITMAPHANDLE structure determines whether the data in the first 6 bytes is RGB or BGR. Each color component is stored as a 16-bit value, where 0 corresponds to black and 0xFFFF corresponds to full white. The last two bytes contain the alpha information (also stored as a short value).
This function will return an error if nBytes is smaller than it should be. The minimum value for nSize is indicated in a formula above.
Win32, x64.
L_INT LBitmapBase__GetPixelDataExample(LBitmapBase & Bitmap, L_TCHAR * pszFile, L_INT nRow,
L_INT nCol)
{
L_INT nRet;
L_UINT uTempValue;
nRet =Bitmap.Load(pszFile);
if(nRet !=SUCCESS)
return nRet;
if (Bitmap.GetBitsPerPixel() == 24 ||
Bitmap.GetBitsPerPixel() == 32)
{
L_UCHAR aPixel[4]; // Make it large enough for both bitmap types
nRet =Bitmap.GetPixelData(aPixel, nRow, nCol, sizeof(aPixel));
if(nRet !=SUCCESS)
return nRet;
// Swap the red and blue values
uTempValue = aPixel[0];
aPixel[0] = aPixel[2];
aPixel[2] = (L_UCHAR) uTempValue;
// Put back the transformed pixel
nRet =Bitmap.PutPixelData(aPixel, nRow, nCol, sizeof(aPixel));
if(nRet !=SUCCESS)
return nRet;
}
else if (Bitmap.GetBitsPerPixel() == 48 ||
Bitmap.GetBitsPerPixel() == 64)
{
L_UINT16 aPixel[4]; // Make it large enough for both bitmap types
nRet =Bitmap.GetPixelData(aPixel, nRow, nCol, sizeof(aPixel));
if(nRet !=SUCCESS)
return nRet;
// Swap the red and blue values
uTempValue = aPixel[0];
aPixel[0] = aPixel[2];
aPixel[2] = (L_UINT16) uTempValue;
// Put back the transformed pixel
nRet =Bitmap.PutPixelData(aPixel, nRow, nCol, sizeof(aPixel));
if(nRet !=SUCCESS)
return nRet;
}
else
{
MessageBox(NULL, TEXT("This example works only with 24-, 32-, 48- and 64-bit bitmaps!"),
TEXT("Testing"), MB_OK);
return FAILURE;
}
return SUCCESS;
}
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