BITMAPHANDLE

The BITMAPHANDLE structure serves as a working area for image manipulation and conversion. LEADTOOLS functions use this structure as a bitmap handle for accessing the image in memory and for maintaining the characteristics of the image.

The LBitmapBase class contains a data member of type BITMAPHANDLE. You can access the LBitmapBase object's internal BITMAPHANDLE using the following member functions:

LBitmapBase::GetHandle
LBitmapBase::GetWidth

LBitmapBase::GetHeight

LBitmapBase::GetMemSize

LBitmapBase::IsAllocated

LBitmapBase::GetColorOrder

LBitmapBase::GetXResolution

LBitmapBase::GetYResolution

LBitmapBase::SetXResolution

LBitmapBase::SetYResolution

LBitmapBase::IsMemoryLocked

LBitmapBase::GetBitsPerPixel

LBitmapBase::GetBytesPerLine

LBitmapBase::Is1BitCompressed

LBitmapBase::IsUsingDiskMemory

LBitmapBase::GetViewPerspective

LBitmapBase::SetViewPerspective

LBitmapBase::IsUsingConventionalMemory

LBitmapBase::IsProgressive

LBitmapBase::IsPlayBackWaitUserInput

LBitmapBase::IsPlayBackTransparencyEnabled

LBitmapBase::EnablePlayBackTransparency

LBitmapBase::SetPlayBackTransparentColor

LBitmapBase::GetPlayBackTransparentColor

LBitmapBase::IsPixelsSigned

LBitmapBase::GetDitheringMethod

LBitmapBase::SetDitheringMethod

LBitmapBase::GetPlayBackLeft

LBitmapBase::SetPlayBackLeft

LBitmapBase::GetPlayBackTop

LBitmapBase::SetPlayBackTop

LBitmapBase::GetPlayBackDisposalMethod

LBitmapBase::SetPlayBackDisposalMethod

LBitmapBase::GetPlayBackBackGroundColor

LBitmapBase::SetPlayBackBackGroundColor

LBitmapBase::SetPlayBackDelay

LBitmapBase::GetPlayBackDelay

LBitmapBase::IsInterlaced

LBitmapBase::GetPalette

LBitmapBase::SetPalette

LBitmapBase::IsSuperCompressed

Note:

Fields intended for internal use, such as the pointer to the bitmap, are omitted from the table. If necessary, you can refer to the LTKRN.H header file which describes the entire structure.

Member

Data Type

Description

uStructSize

L_UINT

Size of this structure in bytes. Use the sizeof() operator to calculate this value.

Width

L_INT

Image width in pixels.

Height

L_INT

Image height in pixels.

BitsPerPixel

L_INT

Number of bits per pixel.

BytesPerLine

L_UINT

Bytes per line, rounded upward to the nearest multiple of four.

Flags.Allocated

L_BITFIELD

TRUE if the bitmap is allocated.

Flags.ConventionalMemory

L_BITFIELD

TRUE if the bitmap is allocated using conventional memory.

Flags.DiskMemory

L_BITFIELD

TRUE if the bitmap is allocated using LEAD's own virtual memory.

Flags.ProgressiveAvailable

L_BITFIELD

TRUE if an image is being loaded from a progressive file (i.e. Progressive JPEG).

Flags.LockedMemory

L_BITFIELD

TRUE if the bitmap memory is locked down.

Flags.Interlaced

L_BITFIELD

TRUE if an image is being loaded from an interlaced file (i.e. Interlaced GIF).

Flags.WaitUserInput

L_BITFIELD

TRUE if the animation playback waits for user input.

Flags.Transparency

L_BITFIELD

TRUE if the animation playback uses transparency.

Flags.Compressed

L_BITFIELD

TRUE if the current bitmap is in 1-bit RLE-compressed format. For information about this format, refer to Speeding Up 1-Bit Documents.

Flags.Signed

L_BITFIELD

TRUE if the pixel values in the bitmap are signed.

Flags.Mirror

L_BITFIELD

TRUE if the bitmap is a mirror of another bitmap.

Flags.UseLUT

L_BITFIELD

TRUE if the LUT is used in all image processing functions, including save. FALSE if the LUT is used only when painting. If this is FALSE, the LUT is ignored when an image processing function is applied or when a file is saved.

Flags.Global

L_BITFIELD

Internal use only.

Flags.UsePaintLUT

L_BITFIELD

TRUE to use PaintGamma, PaintContrast, PaintIntensity when painting.

Flags.Tiled

L_BITFIELD

TRUE if the bitmap is a tiled bitmap.

Flags.SuperCompressed

L_BITFIELD

TRUE if the bitmap is in super compressed format. The bitmap can be 24-bit or 1-bit. For more information, refer to Super Compressed Bitmaps.

Flags.NoClip

L_BITFIELD

Internal use only.

Flags.PremultiplyAlpha

L_BITFIELD

TRUE if the data is premultiplied with the alpha (for 32-bit bitmaps).

Flags.NonLinearLUT

L_BITFIELD

TRUE if the LUT is non-linear (for 12/16-bit grayscale bitmaps).

nColors

L_INT

Number of colors (256 or less) that the bitmap has. If the image has more than 256 colors, this value is zero.

pPalette

L_RGBQUAD *

Array of palette colors.

ViewPerspective

L_INT

Where the beginning of the image is stored. Valid values are TOP_LEFT, BOTTOM_LEFT, TOP_RIGHT, BOTTOM_RIGHT, TOP_LEFT90, and TOP_LEFT270. For descriptions, refer to Accounting for View Perspective.

Order

L_INT

Color order of the bitmap. Possible values are:
ORDER_RGB
ORDER_BGR
ORDER_GRAY
ORDER_RGBORGRAY
ORDER_BGRORGRAY
ORDER_ROMM
ORDER_BGRORGRAYORROMM
ORDER_RGB565

Size

L_UINT32

Deprecated, use the Size64 member.

Size64

L_UINT64

Size of the bitmap image data, in bytes.

DitheringMethod

L_UINT

Dithering method (referenced by some functions). For possible values, refer to the LBitmapSettings::DefaultDithering function.

XResolution

L_INT

Horizontal resolution, in dots per inch. Some file formats save this value in the file header.

YResolution

L_INT

Vertical resolution, in dots per inch. Some file formats save this value in the file header.

Left

L_INT

Left offset for animation playback.

Top

L_INT

Top offset for animation playback, based on a TOP_LEFT view perspective.

Delay

L_UINT32

Animation playback delay in milliseconds (ms).

Background

COLORREF

Background color for animation playback. You can specify a COLORREF value, such as the return value of the Windows RGB macro, or you can use the PALETTEINDEX macro to specify a palette color.

Transparency

COLORREF

Transparent color for animation playback. You can specify a COLORREF value, such as the return value of the Windows RGB macro, or you can use the PALETTEINDEX macro to specify a palette color.

DisposalMethod

L_UINT

Animation playback disposal method. For possible values, refer to Animation Disposal Methods.

LowBit

L_INT

Value indicating the low bit used for window leveling. 0 <= nLowBit <= nHighBit <= (11 for 12-bit grayscale or 15 for 16-bit grayscale). A value of -1 will be treated as 0.

HighBit

L_INT

Value indicating the high bit used for window leveling. 0 <= nLowBit <= nHighBit <= (11 for 12-bit grayscale or 15 for 16-bit grayscale). A value of -1 will be treated as BitsPerPixel -1.

MinVal

L_INT32

Minimum grayscale value. For every value between 0 and MinVal, Black (RGB(0,0,0)) will be used. For values between MinVal and MaxVal, the gray value to be displayed is calculated by : gray = (index - MinVal) * 255 / (MaxVal - MinVal).(See * below)

MaxVal

L_UINT

Maximum grayscale value. For every value larger than MaxVal, White (RGB(255,255,255)) will be used. For values between MinVal and MaxVal, the gray value to be displayed is calculated by : gray = (index - MinVal) * 255 / (MaxVal - MinVal). (See * below)

* index is the intensity value of the pixel. If the intensity value is > MaxVal, the color will be White. If the intensity value is < MinVal, the color will be Black. For those intensity values between MinVal and MaxVal, the above equation is used to determine the color, with index equal to the intensity value.

Comments

pBITMAPHANDLE is a pointer to a BITMAPHANDLE structure. Generally, where a function parameter type is pBITMAPHANDLE, you can declare a BITMAPHANDLE variable, update the structure's fields, and pass the variable's address in the parameter. Declaring a pBITMAPHANDLE variable is necessary only if your program requires a pointer.

Some functions which take this structure as a parameter require that the structure be initialized prior to the function call. You must set the uStructSize member to the total size, in bytes, of the structure. Use the sizeof() operator to calculate this value. Functions that do not require the structure to be initialized will take the total size of the structure, in bytes, as an additional function parameter.

In most cases, the values of fields in the BITMAPHANDLE structure are maintained by LEADTOOLS functions.

Support for super compressing bitmaps is available only in the Document/Medical toolkits.

When Flags.NonLinearLUT is set to TRUE, the LEADTOOLS resample functions will resample the LUT index. This is the preferred mechanism for DICOM images. However, operating on the index causes painting artifacts if the LUT is not linear (for example if some LUT portions contain some colors while others have grayscale values). If the LUT is not linear, LEADTOOLS converts the image data to color 24-bit when painting by using the LUT and then performs the resample/bicubic resize on the 24-bit data. LEADTOOLS sets this value to TRUE automatically when loading DICOM files that contain a 16-bit palette. You should set this to TRUE if you change the LUT manually, or if you change the LUT to be non-linear. Warning: Failure to set this value properly can cause problems with displaying zoomed bitmaps when paint mode is set to resample/bicubic.

Help Version 20.0.2019.9.23
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2019 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Raster Imaging C++ Class Library Help