MrSID Decode SDK for Raster Reference Manual  9.5.1.4427
LTIEmbeddedImage Class Reference

create a larger frame for the image More...

#include <lti_embeddedImage.h>

Inheritance diagram for LTIEmbeddedImage:
LTIOverrideDimensions< LTIOverridePixelProps< LTIOverrideBackgroundPixel< LTIOverrideGeoCoord< LTIImageFilter > > > > LTIOverridePixelProps< LTIOverrideBackgroundPixel< LTIOverrideGeoCoord< LTIImageFilter > > > LTIOverrideDimensionsData LTIOverrideBackgroundPixel< LTIOverrideGeoCoord< LTIImageFilter > > LTIOverridePixelPropsData LTIOverrideGeoCoord< LTIImageFilter > LTIOverrideBackgroundPixelData LTIImageFilter LTIOverrideGeoCoordData LTIImageStage LTIImage LTIReferenceCountedObject LTICropFilter

List of all members.

Public Types

enum  AlphaMode { DoNothing, FromMerge, FromSourceRectangle }

Public Member Functions

LT_STATUS initialize (LTIImageStage *srcImage, lt_uint32 newWidth, lt_uint32 newHeight, double newXPos, double newYPos, const LTIPixel *backgroundPixel, const LTIPixel *nodataPixel, AlphaMode alphaMode=DoNothing)
 initialize
LT_STATUS getDimsAtMag (double mag, lt_uint32 &width, lt_uint32 &height) const
 get image width and height at given magnification
lt_int64 getEncodingCost (const LTIScene &scene) const
 get the cost to encode this scene
bool getReaderScene (const LTIScene &decodeScene, LTIScene &readerScene) const
 get the underlying scene to be used
LT_STATUS setFillingBackground (bool fill)
 control whether or not the background of the new "outer" image should be filled
bool getFillingBackground (void) const
 query whether or not the background of the new "outer" image should be filled
LT_STATUS setFillMethod (LTIPixelFillMethod method, double fuzzyThreshold)
 Set the fill method which controls how noData pixels are matched.
LTIPixelFillMethod getFillMethod (void) const
 Get the fill method.
double getFuzzyThreshold (void) const
virtual lt_uint32 getModifications (const LTIScene &scene) const
 get the modification bitfield for this image
lt_int32 getChildXPosAtMag (double mag) const
lt_int32 getChildYPosAtMag (double mag) const
bool getChildScene (const LTIScene &parentScene, LTIScene &childScene) const

Static Public Member Functions

static LTIEmbeddedImagecreate (void)

Protected Member Functions

 LTIEmbeddedImage (void)
virtual ~LTIEmbeddedImage (void)
LT_STATUS decodeBegin (const LTIPixel &pixelProps, const LTIScene &fullScene)
 start strip-based read
LT_STATUS decodeStrip (LTISceneBuffer &stripBuffer, const LTIScene &stripScene)
 read a strip from the image
LT_STATUS decodeEnd (void)
 finish strip-based read

Detailed Description

Creates a new image stage of the given size, containing the input image stage within it.

This class is used to make an image stage "larger", e.g. to place an image on a larger "canvas" for more flexible decoding. This class is used by the LTIMosaicFilter class to simplify certain computations by making all the input images map to the same underlying grid shape and size.

The embedding process honors the background and nodata pixel settings.

The LTIGeoCoord information for the image stage is updated appropriately.

Definition at line 42 of file lti_embeddedImage.h.


Member Enumeration Documentation

Enumerator:
DoNothing 
FromMerge 
FromSourceRectangle 

Definition at line 51 of file lti_embeddedImage.h.


Constructor & Destructor Documentation

LTIEmbeddedImage::LTIEmbeddedImage ( void  ) [protected]
virtual LTIEmbeddedImage::~LTIEmbeddedImage ( void  ) [protected, virtual]

Member Function Documentation

static LTIEmbeddedImage* LTIEmbeddedImage::create ( void  ) [static]

Reimplemented in LTICropFilter.

LT_STATUS LTIEmbeddedImage::decodeBegin ( const LTIPixel pixelProps,
const LTIScene fullScene 
) [protected, virtual]

This function is called by readBegin() to start the actual class-specific work for decoding a scene.

Derived classes must implement this function.

This function should never be called directly.

Parameters:
pixelPropsthe band selection
fullScenethe full scene to be read
Returns:
status code indicating success or failure

Reimplemented from LTIImageFilter.

LT_STATUS LTIEmbeddedImage::decodeEnd ( void  ) [protected, virtual]

This function is called by readEnd() to complete the actual class-specific work for decoding a scene.

Derived classes must implement this function.

This function should never be called directly.

Returns:
status code indicating success or failure

Reimplemented from LTIImageFilter.

LT_STATUS LTIEmbeddedImage::decodeStrip ( LTISceneBuffer stripBuffer,
const LTIScene stripScene 
) [protected, virtual]

This function is called by readStrip() to implement the actual class-specific work for decoding a strip of the scene.

Derived classes must implement this function.

This function should never be called directly.

Parameters:
stripBufferthe buffer to read the pixels into
stripScenethe scene for this strip being decoded
Returns:
status code indicating success or failure

Reimplemented from LTIImageFilter.

bool LTIEmbeddedImage::getChildScene ( const LTIScene parentScene,
LTIScene childScene 
) const
LT_STATUS LTIEmbeddedImage::getDimsAtMag ( double  mag,
lt_uint32 width,
lt_uint32 height 
) const [virtual]

This function returns the width and height of the image, in pixels, relative to the given magnification.

Parameters:
magmagnification to determine width at
widththe image width at the magnification
heightthe image height at the magnification
Returns:
status code indicating success or failure

Reimplemented from LTIImageFilter.

lt_int64 LTIEmbeddedImage::getEncodingCost ( const LTIScene scene) const [virtual]

Returns the "cost" to encode this scene, for use by those image writers which have usage metering enabled. The typical cost is equal to the nominal image size (width * height * numBands * bytesPerSample), but this is overridden for special situations, e.g. the mosaic filter.

Parameters:
scenethe scene to be charged for
Returns:
the cost to encode the given scene

Reimplemented from LTIImageFilter.

Returns:
true if background to be filled
double LTIEmbeddedImage::getFuzzyThreshold ( void  ) const
virtual lt_uint32 LTIEmbeddedImage::getModifications ( const LTIScene scene) const [virtual]

This function returns a bitfield describing what kinds of modifications have been made to the image during and since its initial encoding.

Parameters:
scenethe area pertaining to this request
Returns:
a bitfield itemizing the encoding modifications

Reimplemented from LTIImageFilter.

bool LTIEmbeddedImage::getReaderScene ( const LTIScene decodeScene,
LTIScene readerScene 
) const [virtual]

Get the scene that will be sent to the underlying LTIImageReader. This is useful in some complex pipelines.

Parameters:
decodeScenethe scene that would be given to read()
readerScenethe scene that is the actual scene passed the underlying image reader
Returns:
true if readerScene is not empty

Reimplemented from LTIImageFilter.

LT_STATUS LTIEmbeddedImage::initialize ( LTIImageStage srcImage,
lt_uint32  newWidth,
lt_uint32  newHeight,
double  newXPos,
double  newYPos,
const LTIPixel backgroundPixel,
const LTIPixel nodataPixel,
AlphaMode  alphaMode = DoNothing 
)

Creates an image stage whose input image is placed within a much larger empty canvas.

Parameters:
srcImagethe base image
newWidththe width of the new image stage
newHeightthe height of the new image stage
newXPospixel x-position of the input image in the new image
newYPospixel y-position of the input image in the new image
backgroundPixelbackground pixel color to use for the new image (may be NULL, in which case the input image's background is used)
nodataPixelnodata pixel color to use for the new image (may be NULL, in which case the input image's nodata is used)
fakeAlphaBandset to true to force this filter to pretend it has an alpha band
Parameters:
fillset to true to fill the background
Returns:
success or failure
LT_STATUS LTIEmbeddedImage::setFillMethod ( LTIPixelFillMethod  method,
double  fuzzyThreshold 
)
Parameters:
methodfill method enum. See LTIPixelFillMethod
fuzzyThresholdfill method enum. See LTIPixelFillMethod

The documentation for this class was generated from the following file: