GetPixelDataInRect

globalmapper.GetPixelDataInRect(GM_LayerHandle_t32 aLayer, GM_PixelRect_t aPixelRect, GM_RasterLayout_t aRasterLayout, int aDataBuf, uint32 aReserved=0) GM_Error_t32[source]

Retrieves a pixel rectangle of raw band values from the supplied image layer defined by the provided layout.

If you call this with 0 for aDataBuf, the aRasterLayout structure will be filled out before GM_Error_InvalidParam is returned, so you can call this before allocation to determine the proper allocation size.

The following aRasterLayout.mFlags are used:

  • GM_RasterLayout_BGROrder - bands are stored in reverse order. The alpha band is still the last one (if present)

  • GM_RasterLayout_AlphaPresent - an alpha band will be added after the data bands. If there was already a separate alpha channel in the image, it will be one of the data bands and aRasterLayout.mAlphaBandIdx will reference it. Otherwise, a new alpha channel is added where 0 will be stored for invalid pixels, and valid pixels will be 1.0 for float values, or the maximum positive value for int, like 255 for GM_VAL_U8

  • GM_RasterLayout_ReverseRows - last row will be stored first in data buffer

  • GM_RasterLayout_ReverseCols - rows of data will start with the last column

  • GM_RasterLayout_HideProgress - progress will NOT be displayed

Parameters:
  • aLayer (GM_LayerHandle_t32) – Layer to get band values from

  • aPixelRect (GM_PixelRect_t) – Rectangle of pixels to extract from layer (use 0 to extract the entire image)

  • aRasterLayout (GM_RasterLayout_t) – Raster layout (some values used if non-zero, like mBytesPerRow, other values filled in)

  • aDataBuf (int) – Buffer that will be filled with the image data. Must be large enough to hold all data. If 0, aRasterLayout will be filled out before return.

  • aReserved (uint32) – Reserved for future use; defaults to 0

Returns:

Error Code

Return type:

GM_Error_t32