Public Member Functions

BitmapStorageHDR Class Reference

This reference page is linked to from the following overview topics: High Dynamic Range Bitmaps.


Search for all occurrences

Detailed Description

See also:
Class BitmapStorage.

Description:
This class is available in release 4.0 and later only.

This is the base class for the development of plug-in Bitmap Storage plug-ins that use Hight Dynamic Range bitmaps.

All methods of this class are implemented by the System.

#include <bitmap.h>

Inheritance diagram for BitmapStorageHDR:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual BMMExport int  IsHighDynamicRange ()
virtual BMMExport int  StraightCopy (Bitmap *from)
virtual BMMExport int  Get16Gray (int x, int y, int pixels, WORD *ptr)
virtual BMMExport int  Put16Gray (int x, int y, int pixels, WORD *ptr)
virtual BMMExport int  GetLinearPixels (int x, int y, int pixels, BMM_Color_64 *ptr)
virtual BMMExport int  GetPixels (int x, int y, int pixels, BMM_Color_64 *ptr)
virtual BMMExport int  PutPixels (int x, int y, int pixels, BMM_Color_64 *ptr)
virtual BMMExport int  CropImage (int width, int height, BMM_Color_64 fillcolor)
virtual BMMExport int  CropImage (int width, int height, int fillindex)
virtual BMMExport int  CopyCrop (Bitmap *from, BMM_Color_64 fillcolor)
virtual BMMExport int  CopyCrop (Bitmap *from, BMM_Color_fl fillcolor)
virtual BMMExport int  CopyScaleLow (Bitmap *from)
virtual BMMExport int  CopyScaleHigh (Bitmap *from, HWND hWnd, BMM_Color_64 **buf=NULL, int w=0, int h=0)
virtual BMMExport int  CopyScaleHigh (Bitmap *from, HWND hWnd, BMM_Color_fl **buf=NULL, int w=0, int h=0)
virtual BMMExport int  CopyImage (Bitmap *from, int operation, BMM_Color_64 fillcolor, BitmapInfo *bi=NULL)
virtual BMMExport int  CopyImage (Bitmap *from, int operation, BMM_Color_fl fillcolor, BitmapInfo *bi=NULL)
virtual BMMExport int  CopyImage (Bitmap *from, int operation, int fillindex)
virtual BMMExport int  GetFiltered (float u, float v, float du, float dv, BMM_Color_64 *ptr)

Member Function Documentation

virtual BMMExport int IsHighDynamicRange ( ) [inline, virtual]
Remarks:
Implemented by the System.

This method returns 0 if the bitmap is not a high dynamic range bitmap or 1 if it is.
Default Implementation:
{ return(1); }

Implements BitmapStorage.

{ return 1; }
virtual BMMExport int StraightCopy ( Bitmap from ) [virtual]
Remarks:
Implemented by the System.

This method does a straightforward copy from the specified bitmap.
Parameters:
Bitmap *from

The bitmap to copy from.

Implements BitmapStorage.

virtual BMMExport int Get16Gray ( int  x,
int  y,
int  pixels,
WORD *  ptr 
) [virtual]
Remarks:
Implemented by the System.

Retrieves the specified 16 bit grayscale pixels from the storage. This method operates on a single scanline of the image at a time.
Parameters:
int x

Source x location.

int y

Source y location.

int pixels

Number of pixels to retrieve.

WORD *ptr

Pointer to the storage for the retrieved pixels.
Returns:
Nonzero if pixels were retrieved; otherwise 0.

Implements BitmapStorage.

virtual BMMExport int Put16Gray ( int  x,
int  y,
int  pixels,
WORD *  ptr 
) [virtual]
Remarks:
Implemented by the System.

Stores the 16 bit grayscale pixels to the specified location in the storage. This method operates on a single scanline of the image at a time.
Parameters:
int x

Destination x location.

int y

Destination y location.

int pixels

Number of pixels to store.

WORD *ptr

Pointer to the storage for the pixels.
Returns:
Nonzero if pixels were stored; otherwise 0.

Implements BitmapStorage.

virtual BMMExport int GetLinearPixels ( int  x,
int  y,
int  pixels,
BMM_Color_64 ptr 
) [virtual]
Remarks:
This method retrieves the specified 64 bit true color pixels from the storage. Pixels returned from this method are NOT gamma corrected. These have linear gamma (1.0). This method operates on a single scanline of the image at a time.
Parameters:
int x

Source x location.

int y

Source y location.

int pixels

Number of pixels to retrieve.

BMM_Color_64 *ptr

Pointer to the storage for the retrieved pixels.
Returns:
Nonzero if pixels were retrieved; otherwise 0.

Implements BitmapStorage.

virtual BMMExport int GetPixels ( int  x,
int  y,
int  pixels,
BMM_Color_64 ptr 
) [virtual]
Remarks:
int x

Source x location.

int y

Source y location.

int pixels

Number of pixels to retrieve.

BMM_Color_fl *ptr

Pointer to the storage for the retrieved pixels.
Returns:
Returns nonzero if pixels were retrieved; otherwise 0. If storage has not been allocated 0 is returned.

Implements BitmapStorage.

virtual BMMExport int PutPixels ( int  x,
int  y,
int  pixels,
BMM_Color_64 ptr 
) [virtual]
Remarks:
Stores the specified 64-bit pixel values into the bitmap's own local storage. The pointer you pass to this method may be freed or reused as soon as the function returns. Note: This method provides access to pixel data one scanline at a time.
Parameters:
int x

Destination x location.

int y

Destination y location.

int pixels

Number of pixels to store.

BMM_Color_fl *ptr

The pixels values to store.
Returns:
Returns nonzero if pixels were stored; otherwise 0. If storage has not been allocated 0 is returned.

Implements BitmapStorage.

virtual BMMExport int CropImage ( int  width,
int  height,
BMM_Color_64  fillcolor 
) [virtual]
Remarks:
Adjusts the bitmap size to the specified dimensions. The image is not resized to fit; it is cropped or filled with fillcolor pixels to accommodate the new size.
Parameters:
int width

The new horizontal size for the bitmap.

int height

The new vertical size for the bitmap.

BMM_Color_64 fillcolor

If the bitmap's new size is bigger than its current size, this is the color used to fill the new pixels.
Returns:
Nonzero if the image was cropped; otherwise 0.

Implements BitmapStorage.

virtual BMMExport int CropImage ( int  width,
int  height,
int  fillindex 
) [virtual]
Remarks:
Adjusts the bitmap size to the specified dimensions. The image is not resized to fit; it is cropped or filled with fillcolor pixels to accommodate the new size.
Parameters:
int width

The new horizontal size for the bitmap.

int height

The new vertical size for the bitmap.

int fillindex

If the bitmap's new size is bigger than its current size, this is the color used to fill the new pixels.
Returns:
Nonzero if the image was cropped; otherwise 0.

Implements BitmapStorage.

virtual BMMExport int CopyCrop ( Bitmap from,
BMM_Color_64  fillcolor 
) [virtual]
Remarks:
Copies the specified bitmap to this storage. The image is cropped to fit.
Parameters:
Bitmap *from

The bitmap to copy to this bitmap.

BMM_Color_64 fillcolor

The color to use if the source image is smaller than the destination image.
Returns:
Nonzero if the copy/crop was performed; otherwise zero.

Implements BitmapStorage.

virtual BMMExport int CopyCrop ( Bitmap from,
BMM_Color_fl  fillcolor 
) [virtual]
Remarks:
Copies the specified bitmap to this storage. The image is cropped to fit.
Parameters:
Bitmap *from

The bitmap to copy to this bitmap.

BMM_Color_fl fillcolor

The color to use if the source image is smaller than the destination image.
Returns:
Nonzero if the copy/crop was performed; otherwise zero.

Implements BitmapStorage.

virtual BMMExport int CopyScaleLow ( Bitmap from ) [virtual]
Remarks:
Implemented by the System.

This method copies the specified bitmap to this storage. The source bitmap is scaled to fit using a lower quality but faster algorithm than CopyScaleHigh().This is an internal function implemented within BMM.DLL for copying bitmaps back and forth. If a developer creates new storage type, they will automatically get these copy functions as these are implemented in the base class.
Parameters:
Bitmap *from

The bitmap to copy to this bitmap.
Returns:
Nonzero if the copy/scale was performed; otherwise zero.

Implements BitmapStorage.

virtual BMMExport int CopyScaleHigh ( Bitmap from,
HWND  hWnd,
BMM_Color_64 **  buf = NULL,
int  w = 0,
int  h = 0 
) [virtual]
Remarks:
Implemented by the System.

This method copies the specified bitmap to this storage. The source bitmap is scaled to fit using a higher quality but slower algorithm than CopyScaleLow(). This is an internal function implemented within BMM.DLL for copying bitmaps back and forth. If a developer creates new storage type, they will automatically get these copy functions as these are implemented in the base class.

Implements BitmapStorage.

virtual BMMExport int CopyScaleHigh ( Bitmap from,
HWND  hWnd,
BMM_Color_fl **  buf = NULL,
int  w = 0,
int  h = 0 
) [virtual]
Remarks:
Implemented by the System.

This method copies the specified bitmap to this storage. The source bitmap is scaled to fit using a higher quality but slower algorithm than CopyScaleLow(). This is an internal function implemented within BMM.DLL for copying bitmaps back and forth. If a developer creates new storage type, they will automatically get these copy functions as these are implemented in the base class.

Implements BitmapStorage.

virtual BMMExport int CopyImage ( Bitmap from,
int  operation,
BMM_Color_64  fillcolor,
BitmapInfo bi = NULL 
) [virtual]
Remarks:
Copies the specified bitmap to this storage. The image is cropped or resized as specified.
Parameters:
Bitmap *from

The source bitmap.

int operation

The type of copy to perform:

COPY_IMAGE_CROP

Copy image to current map size using cropping if necessary.

COPY_IMAGE_RESIZE_LO_QUALITY

Resize the source image to the destination map size (draft quality).

COPY_IMAGE_RESIZE_HI_QUALITY

Resize source image to the destination map size (final quality).

COPY_IMAGE_USE_CUSTOM

Resize based on the Image Input Options (BitmapInfo *).

BMM_Color_64 fillcolor

Vacant areas of the bitmap are filled with fillcolor pixels if the operation specified is COPY_IMAGE_CROP and one of the source bitmap dimensions is less than the size of this bitmap.

BitmapInfo *bi = NULL

When using custom options (resize to fit, positioning, etc.) this is how the flags are passed down to the Bitmap Manager. This is an optional argument -- for simple copy operations, *bi can default to NULL. If present, the code checks the option flags and acts accordingly.
Returns:
Nonzero if the copy was performed; otherwise 0.

Implements BitmapStorage.

virtual BMMExport int CopyImage ( Bitmap from,
int  operation,
BMM_Color_fl  fillcolor,
BitmapInfo bi = NULL 
) [virtual]
Remarks:
Copies the specified bitmap to this storage.
Parameters:
Bitmap *from

The source bitmap.

int operation

The type of copy to perform:

COPY_IMAGE_CROP

Copy image to current map size using cropping if necessary.

COPY_IMAGE_RESIZE_LO_QUALITY

Resize the source image to the destination map size (draft quality).

COPY_IMAGE_RESIZE_HI_QUALITY

Resize source image to the destination map size (final quality).

COPY_IMAGE_USE_CUSTOM

Resize based on the Image Input Options (BitmapInfo *).

BMM_Color_fl fillcolor

Vacant areas of the bitmap are filled with fillcolor pixels if the operation specified is COPY_IMAGE_CROP and one of the source bitmap dimensions is less than the size of this bitmap.

BitmapInfo *bi = NULL

When using custom options (resize to fit, positioning, etc.) this is how the flags are passed down to the Bitmap Manager. This is an optional argument -- for simple copy operations, *bi can default to NULL. If present, the code checks the option flags and acts accordingly.
Returns:
Nonzero if the copy was performed; otherwise 0.

Implements BitmapStorage.

virtual BMMExport int CopyImage ( Bitmap from,
int  operation,
int  fillindex 
) [virtual]
Remarks:
Copies the specified bitmap to this storage.
Parameters:
Bitmap *from

The source bitmap.

int operation

The type of copy to perform:

COPY_IMAGE_CROP

Copy image to current map size using cropping if necessary.

COPY_IMAGE_RESIZE_LO_QUALITY

Resize the source image to the destination map size (draft quality).

COPY_IMAGE_RESIZE_HI_QUALITY

Resize source image to the destination map size (final quality).

COPY_IMAGE_USE_CUSTOM

Resize based on the Image Input Options (BitmapInfo *).

int fillindex

Vacant areas of the bitmap are filled with fillcolor pixels if the operation specified is COPY_IMAGE_CROP and one of the source bitmap dimensions is less than the size of this bitmap.
Returns:
Nonzero if the copy was performed; otherwise 0.

Implements BitmapStorage.

virtual BMMExport int GetFiltered ( float  u,
float  v,
float  du,
float  dv,
BMM_Color_64 ptr 
) [virtual]
Remarks:
This method uses summed area table or pyramidal filtering to compute an averaged color over a specified area.
Parameters:
float u, float v

The location in the bitmap to filter. These values go from 0.0 to 1.0 across the size of the bitmap.

float du, float dv

The size of the rectangle to sample. These values go from 0.0 to 1.0 across the size of the bitmap.

BMM_Color_fl *ptr

The result is returned here - the average over the specified area.

Implements BitmapStorage.


BitmapStorageHDR BitmapStorageHDR BitmapStorageHDR BitmapStorageHDR BitmapStorageHDR BitmapStorageHDR BitmapStorageHDR BitmapStorageHDR BitmapStorageHDR BitmapStorageHDR
BitmapStorageHDR BitmapStorageHDR BitmapStorageHDR BitmapStorageHDR BitmapStorageHDR BitmapStorageHDR BitmapStorageHDR BitmapStorageHDR BitmapStorageHDR BitmapStorageHDR