#include "l_bitmap.h"
L_LTKRN_API L_SSIZE_T L_PutBitmapRowCol(pBitmap, pBuffer, nRow, nCol, uBytes)
pBITMAPHANDLE pBitmap; |
pointer to the bitmap handle |
L_UCHAR* pBuffer; |
pointer to the source buffer |
L_INT nRow; |
number of the row to update |
L_INT nCol; |
column offset within the row to update |
L_SIZE_T uBytes; |
number of bytes to update |
Copies data from a buffer to a bitmap, with an offset to the bitmap. The buffer to which pBuffer points contains uncompressed data.
Parameter | Description | |
pBitmap | Pointer to the bitmap handle referencing the bitmap to put data into. | |
pBuffer | Pointer to the buffer containing the image data. | |
nRow | The number of the row to update. The first row is 0, and the last row is 1 less than the bitmap height. | |
nCol | The column offset within the row to update. The first column offset is 0, and the last column offset is 1 less than the bitmap width. | |
uBytes | The number of bytes to update. Consider the bits per pixel, and avoid specifying a number that goes past the end of the row. | |
Value | Meaning | |
1-bit bitmap | Each byte represents 8 pixels. | |
4-bit bitmap | Each byte represents 2 pixels. | |
8-bit bitmap | Each byte represents 1 pixel | |
16-bit bitmap | Every 2 bytes represents one pixel. | |
24-bit bitmap | Every three bytes represents one pixel. | |
32-bit bitmap | Every four bytes represents one pixel. | |
48-bit bitmap | Every six bytes represents one pixel. | |
64-bit bitmap | Every eight bytes represents one pixel. |
>=1 |
The number of bytes put. |
< 1 |
An error occurred. Refer to Return Codes. |
By using this low-level function to update any part of a row, you can write a procedure that updates a single pixel or a rectangular area within the bitmap.
This function accepts an offset parameter (nCol) in pixels and a length (uBytes) in bytes. Therefore, you must consider the bits per pixel of the bitmap when specifying these parameters. The following table describes the rules:
Bits Per |
Column Offset (in Pixels) |
Bytes to Update |
1 |
Must be a multiple of 8 (such as 0, 8, or 16). |
Should not go past the end of the row. Consider that there are 8 pixels per byte. |
4 |
Must be an even number (such as 0, 2, or 4). |
Should not go past the end of the row. Consider that there are 2 pixels per byte. |
8 |
Can be any column within the bitmap. |
Should not go past the end of the row. Consider that there is 1 pixel per byte. |
16 |
Can be any column within the bitmap. |
Must be a multiple of 2 (such as 2, 4, or 6), because there are 2 bytes per pixel. Also, it should not go past the end of the row. |
24 |
Can be any column within the bitmap. |
Must be a multiple of 3 (such as 3, 6, or 9), because there are 3 bytes per pixel. Also, it should not go past the end of the row. |
32 |
Can be any column within the bitmap. |
Must be a multiple of 4 (such as 4, 8, or 12), because there are 4 bytes per pixel. Also, it should not go past the end of the row. |
The bitmap memory must be locked when you use this function. Normally, you can call L_AccessBitmap to lock the memory before starting an operation that uses this function, then call L_ReleaseBitmap when the operation is finished.
Color order of the target bitmap is determined by the Order field in the bitmap handle. This value can be ORDER_RGB, ORDER_BGR, ORDER_GRAY or ORDER_ROMM.
Note: To calculate the correct size for a single row of image data:
Windows:
(((Width * BitsPerPixel) + 31) >> 3)) &~3
Linux:
(((Width * BitsPerPixel) + 7) / 8)
Required DLLs and Libraries
For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application. |
Platforms
Win32, x64, Linux.
Functions: |
L_AccessBitmap, L_ReleaseBitmap, L_ClearBitmap, L_GetBitmapRow, L_PutBitmapRow, L_GetBitmapRowCol, L_GetPixelColor, L_PutPixelColor |
Topics: |
For a short example, refer to L_GetBitmapRowCol. For complete sample code, refer to the GETROW example.
Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET