LTIImageFilter Class Reference

abstract class for implementing an image transform More...

#include <lti_imageFilter.h>

Inheritance diagram for LTIImageFilter:

LTIImageStage LTIImage LTIReferenceCountedObject J2KImageReader LTIOverrideBackgroundPixel< LTIImageFilter > LTIOverrideGeoCoord< LTIImageFilter > LTIOverrideMetadata< LTIImageFilter > LTIOverrideStripHeight< LTIImageFilter > LTIViewerImageFilter LTIWatermarkFilter MrSIDImageReader

List of all members.

Public Member Functions

lt_uint32 getWidth () const
 get image width
lt_uint32 getHeight () const
 get image height
LT_STATUS getDimsAtMag (double mag, lt_uint32 &width, lt_uint32 &height) const
 get image width and height at given magnification
const LTIPixelgetPixelProps () const
 get the pixel properties of the image
const LTIPixelgetBackgroundPixel () const
 get the values of the background pixel
const LTIPixelgetNoDataPixel () const
 get the values of the "no data" (transparency) pixel
const LTIPixelLookupTablegetPixelLookupTable () const
 get the color lookup table, if any
const LTIPixelgetMinDynamicRange () const
 get the minimum dynamic range value of image
const LTIPixelgetMaxDynamicRange () const
 get the maximum dynamic range value of image
const LTIGeoCoordgetGeoCoord () const
 get the geographic coordinates of the image
bool isGeoCoordImplicit () const
 is geo information "real" or not
const LTIMetadataDatabasegetMetadata () const
 get the metadata associated with the image
double getMinMagnification () const
 get the minimum magnification
double getMaxMagnification () const
 get the maximum magnification
bool isSelective () const
 check if image supports "random access" decoding
void setProgressDelegate (LTIProgressDelegate *delegate)
 set progress delegate
LTIProgressDelegategetProgressDelegate () const
 get progress delegate
void setInterruptDelegate (LTIInterruptDelegate *delegate)
 set interrupt delegate
LTIInterruptDelegategetInterruptDelegate () const
 get interrupt delegate
lt_uint32 getStripHeight () const
 get strip height
LT_STATUS setStripHeight (lt_uint32 stripHeight)
 set the strip height
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
virtual lt_uint32 getModifications (const LTIScene &scene) const
 get the modification bitfield for this image
LT_STATUS overrideBackgroundPixel (const LTIPixel *backgroundPixel)
 override the background color of the image
LT_STATUS overrideNoDataPixel (const LTIPixel *nodataPixel)
 override the "no data" (transparency) color of the image
LT_STATUS overrideGeoCoord (const LTIGeoCoord &geoCoord)
 override the geographic coordinates of the image
LT_STATUS overrideDynamicRange (const LTIPixel &drmin, const LTIPixel &drmax)
 override the dynamic range of the image
LT_STATUS overridePixelBPS (lt_uint8)
 override the bits-per-sample of the image's (sample's) datatype
LT_STATUS overridePixelLookupTable (const LTIPixelLookupTable *pixelLookupTable)
 override the CLUT of the image
LT_STATUS overrideMetadata (const LTIMetadataDatabase &metadata)
 override the metadata of the image
LTIMaskSource * getMask () const
bool getPipelineInfo (LTIPipelineInfo info) const
LTIImageStagegetPreviousStage (void) const

Protected Member Functions

 LTIImageFilter (void)
virtual ~LTIImageFilter (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
LT_STATUS init (LTIImageStage *previousStage)
void releasePreviousStageNow (void)


Detailed Description

The LTIImageFilter abstract class extends the LTIImageStage so that it can be used as an intermediate stage in an image pipeline. This is the base class for such classes as the colorspace transformer, image cropper, etc.

Definition at line 29 of file lti_imageFilter.h.


Constructor & Destructor Documentation

LTIImageFilter::LTIImageFilter ( void   )  [protected]

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


Member Function Documentation

lt_uint32 LTIImageFilter::getWidth (  )  const [virtual]

lt_uint32 LTIImageFilter::getHeight (  )  const [virtual]

LT_STATUS LTIImageFilter::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:
mag magnification to determine width at
width the image width at the magnification
height the image height at the magnification
Returns:
status code indicating success or failure

Implements LTIImage.

Reimplemented in LTIEmbeddedImage, and LTIMultiResFilter.

Examples:
DecodeJP2ToBBB.cpp, DecodeJP2ToJPG.cpp, DecodeMrSIDToRaw.cpp, and DecodeMrSIDToTIFF.cpp.

const LTIPixel& LTIImageFilter::getPixelProps (  )  const [virtual]

const LTIPixel* LTIImageFilter::getBackgroundPixel (  )  const [virtual]

This function returns a pointer to an object containing the values of the background pixel of the image. If the pointer is NULL, no background color has been set for the image.

Returns:
pointer to the background pixel

Implements LTIImage.

Reimplemented in LTIOverrideBackgroundPixel< LTIOverrideGeoCoord< LTIImageFilter > >, LTIOverrideBackgroundPixel< LTIImageFilter >, and LTIOverrideBackgroundPixel< LTIOverrideMetadata< LTIImageFilter > >.

const LTIPixel* LTIImageFilter::getNoDataPixel (  )  const [virtual]

This function returns a pointer to an object containing the values of the no data pixel of the image. If the pointer is NULL, no transparency color has been set for the image.

Returns:
pointer to the no data pixel

Implements LTIImage.

Reimplemented in LTIOverrideBackgroundPixel< LTIOverrideGeoCoord< LTIImageFilter > >, LTIOverrideBackgroundPixel< LTIImageFilter >, and LTIOverrideBackgroundPixel< LTIOverrideMetadata< LTIImageFilter > >.

Examples:
ImageInfo.cpp.

const LTIPixelLookupTable* LTIImageFilter::getPixelLookupTable (  )  const [virtual]

This function returns a pointer the color lookup table, used for indexed or palletized images. Will return NULL if no table is used.

Returns:
pointer to the pixel lookup table

Implements LTIImage.

const LTIPixel& LTIImageFilter::getMinDynamicRange (  )  const [virtual]

This function returns the pixels of minimum value of the dynamic range of the image.

Returns:
pixel object with the minimum dynamic range values

Implements LTIImage.

Reimplemented in LTIOverridePixelProps< LTIOverrideBackgroundPixel< LTIOverrideMetadata< LTIImageFilter > > >, LTIOverridePixelProps< LTIOverrideBackgroundPixel< LTIImageFilter > >, and LTIOverridePixelProps< LTIOverrideBackgroundPixel< LTIOverrideGeoCoord< LTIImageFilter > > >.

const LTIPixel& LTIImageFilter::getMaxDynamicRange (  )  const [virtual]

This function returns the pixels of maximum value of the dynamic range of the image.

Returns:
pixel object with the maximum dynamic range values

Implements LTIImage.

Reimplemented in LTIOverridePixelProps< LTIOverrideBackgroundPixel< LTIOverrideMetadata< LTIImageFilter > > >, LTIOverridePixelProps< LTIOverrideBackgroundPixel< LTIImageFilter > >, and LTIOverridePixelProps< LTIOverrideBackgroundPixel< LTIOverrideGeoCoord< LTIImageFilter > > >.

const LTIGeoCoord& LTIImageFilter::getGeoCoord (  )  const [virtual]

This function returns the geographic coordinates of the image.

Note that if the image has no explicit geographic coordinate information, e.g. stored within the metadata of a file, the geographic coordinates are implicitly set (upperleft is (0,-height), resolution is (1,-1))

Returns:
a pointer to an object containing the geographic coordinates

Implements LTIImage.

Reimplemented in LTIOverrideGeoCoord< LTIOverrideMagnification< LTIOverrideStripHeight< LTIImageFilter > > >, and LTIOverrideGeoCoord< LTIImageFilter >.

Examples:
GeoScene.cpp, and ImageInfo.cpp.

bool LTIImageFilter::isGeoCoordImplicit (  )  const [virtual]

This function returns true if the geo information is implicit, i.e. the source image did not have native geo coord info.

Returns:
true if and only if the geo information is not "real"

Implements LTIImage.

Reimplemented in LTIOverrideGeoCoord< LTIOverrideMagnification< LTIOverrideStripHeight< LTIImageFilter > > >, and LTIOverrideGeoCoord< LTIImageFilter >.

const LTIMetadataDatabase& LTIImageFilter::getMetadata (  )  const [virtual]

This function returns a reference to the object containing the metadata associated with the image.

Returns:
a reference to the metadata database

Implements LTIImage.

Reimplemented in LTIOverrideMetadata< LTIImageFilter >.

Examples:
MetadataDump.cpp.

double LTIImageFilter::getMinMagnification (  )  const [virtual]

This function returns the minimum magnification of the image. Images that do not support "zooming out" will return 1.0; images that contain "overviews", e.g. MrSID, will return a value greater than 1.0.

Returns:
the minimum magnification

Implements LTIImage.

Reimplemented in LTIOverrideMagnification< LTIOverrideStripHeight< LTIImageFilter > >.

Examples:
ImageInfo.cpp.

double LTIImageFilter::getMaxMagnification (  )  const [virtual]

This function returns the maximum magnification of the image. Images that do not support "zooming in" will return 1.0; images that support "res-up", e.g. MrSID, will return a value less than 1.0.

Returns:
the maximum magnification

Implements LTIImage.

Reimplemented in LTIOverrideMagnification< LTIOverrideStripHeight< LTIImageFilter > >.

Examples:
ImageInfo.cpp.

bool LTIImageFilter::isSelective (  )  const [virtual]

Some formats, notably JPEG, do not support "selective" decoding. That is, they require that scenes being decoding must march in order down the scanlines of the image. Formats like TIFF and MrSID, however, are "selective": any scene can be requested at any time.

Returns:
true if and only if the image supports arbitrary scene requests

Implements LTIImage.

void LTIImageFilter::setProgressDelegate ( LTIProgressDelegate delegate  )  [virtual]

This function sets the progress delegate, which is used in a callback-like fashion to report percent-complete of a read() operation back to the calling application.

Passing NULL to this function should remove the LTIImageStage's current delegate, if any.

Note this function does not take ownership of the delegate object.

Parameters:
delegate a pointer to the delegate object to be used by the image reader

Implements LTIImageStage.

Examples:
ProgressDelegate.cpp.

LTIProgressDelegate* LTIImageFilter::getProgressDelegate (  )  const [virtual]

This function returns the object's progress delegate.

The function will return NULL if no delegate has been set.

Derived classes should call this method from within their read() methods so that they can inform the user of the progress of the read operation.

Returns:
a pointer to the delegate object (or NULL if no delegate has been set)

Implements LTIImageStage.

void LTIImageFilter::setInterruptDelegate ( LTIInterruptDelegate delegate  )  [virtual]

This function sets the interrupt delegate, which is used in a callback-like fashion by the calling application to asynchronously indicate that a read() operation should be halted without completing.

Passing NULL to this function should remove the LTIImageStage's current delegate, if any.

Note this function does not take ownership of the delegate object.

Parameters:
delegate a pointer to the delegate object to be used by the image reader

Implements LTIImageStage.

Examples:
InterruptDelegate.cpp.

LTIInterruptDelegate* LTIImageFilter::getInterruptDelegate (  )  const [virtual]

This function returns the object's interrupt delegate.

The function will return NULL if no delegate has been set.

Derived classes should call this method from within their read() methods so that they can determine if the user has requested that the read operation should be aborted.

Returns:
a pointer to the delegate object (or NULL if no delegate has been set)

Implements LTIImageStage.

lt_uint32 LTIImageFilter::getStripHeight (  )  const [virtual]

Returns the strip height used in read() calls.

Reader classes should set this. Filter classes should inherit the stripheight of their pipeline predecessor. A writer class will force the stripheight of the pipeline to match its stripheight.

Returns:
the strip height

Implements LTIImageStage.

Reimplemented in LTIBandSelectFilter, and LTIOverrideStripHeight< LTIImageFilter >.

LT_STATUS LTIImageFilter::setStripHeight ( lt_uint32  stripHeight  )  [virtual]

Sets the strip height to be used in decoding. This is the number of rows to be decoded in each strip of the read() sequence.

Reader classes should implement this directly. (LTIImageFilter implements this as a call to setStripHeight() on the previous stage.)

Parameters:
stripHeight the number of rows to decode at one time
Returns:
status code indicating success or failure

Implements LTIImageStage.

Reimplemented in LTIBandSelectFilter, and LTIOverrideStripHeight< LTIImageFilter >.

lt_int64 LTIImageFilter::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:
scene the scene to be charged for
Returns:
the cost to encode the given scene

Implements LTIImageStage.

Reimplemented in J2KImageReader, LTIBandSelectFilter, LTIDynamicRangeFilter, LTIEmbeddedImage, LTIMultiResFilter, and MrSIDImageReader.

bool LTIImageFilter::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:
decodeScene the scene that would be given to read()
readerScene the scene that is the actual scene passed the underlying image reader
Returns:
true if readerScene is not empty

Implements LTIImageStage.

Reimplemented in LTIEmbeddedImage, and LTIMultiResFilter.

virtual lt_uint32 LTIImageFilter::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:
scene the area pertaining to this request
Returns:
a bitfield itemizing the encoding modifications

Implements LTIImage.

Reimplemented in J2KImageReader, LTIBandSelectFilter, LTIColorTransformer, LTIDynamicRangeFilter, LTIEmbeddedImage, LTIMultiResFilter, LTITranslationFilter, LTIViewerImageFilter, LTIWatermarkFilter, and MrSIDImageReader.

LT_STATUS LTIImageFilter::overrideBackgroundPixel ( const LTIPixel backgroundPixel  )  [virtual]

This function is used to set the background color of the image.

Parameters:
backgroundPixel the data for the background color
Returns:
status code indicating success or failure

Implements LTIImageStage.

Reimplemented in LTIOverrideBackgroundPixel< LTIOverrideGeoCoord< LTIImageFilter > >, LTIOverrideBackgroundPixel< LTIImageFilter >, and LTIOverrideBackgroundPixel< LTIOverrideMetadata< LTIImageFilter > >.

LT_STATUS LTIImageFilter::overrideNoDataPixel ( const LTIPixel nodataPixel  )  [virtual]

This function is used to set the "no data" or transparency color of the image.

Parameters:
nodataPixel the data for the transparency color
Returns:
status code indicating success or failure

Implements LTIImageStage.

Reimplemented in LTIOverrideBackgroundPixel< LTIOverrideGeoCoord< LTIImageFilter > >, LTIOverrideBackgroundPixel< LTIImageFilter >, and LTIOverrideBackgroundPixel< LTIOverrideMetadata< LTIImageFilter > >.

LT_STATUS LTIImageFilter::overrideGeoCoord ( const LTIGeoCoord geoCoord  )  [virtual]

This function is used to set the geographic coordinates of the image.

Parameters:
geoCoord the geographic coordinate information
Returns:
status code indicating success or failure

Implements LTIImageStage.

Reimplemented in LTIOverrideGeoCoord< LTIOverrideMagnification< LTIOverrideStripHeight< LTIImageFilter > > >, and LTIOverrideGeoCoord< LTIImageFilter >.

LT_STATUS LTIImageFilter::overrideDynamicRange ( const LTIPixel drmin,
const LTIPixel drmax 
) [virtual]

LT_STATUS LTIImageFilter::overridePixelBPS ( lt_uint8   )  [virtual]

LT_STATUS LTIImageFilter::overridePixelLookupTable ( const LTIPixelLookupTable pixelLookupTable  )  [virtual]

Implements LTIImageStage.

LT_STATUS LTIImageFilter::overrideMetadata ( const LTIMetadataDatabase metadata  )  [virtual]

LTIMaskSource* LTIImageFilter::getMask (  )  const [virtual]

Implements LTIImageStage.

bool LTIImageFilter::getPipelineInfo ( LTIPipelineInfo  info  )  const [virtual]

Implements LTIImageStage.

Reimplemented in LTIMultiResFilter.

LTIImageStage* LTIImageFilter::getPreviousStage ( void   )  const

LT_STATUS LTIImageFilter::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:
pixelProps the band selection
fullScene the full scene to be read
Returns:
status code indicating success or failure

Implements LTIImageStage.

Reimplemented in LTIBandSelectFilter, LTIColorTransformer, LTIDynamicRangeFilter, LTIEmbeddedImage, LTIMultiResFilter, and LTIWatermarkFilter.

LT_STATUS LTIImageFilter::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:
stripBuffer the buffer to read the pixels into
stripScene the scene for this strip being decoded
Returns:
status code indicating success or failure

Implements LTIImageStage.

Reimplemented in LTIBandSelectFilter, LTIColorTransformer, LTIDynamicRangeFilter, LTIEmbeddedImage, LTIMultiResFilter, and LTIWatermarkFilter.

LT_STATUS LTIImageFilter::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

Implements LTIImageStage.

Reimplemented in LTIBandSelectFilter, LTIColorTransformer, LTIDynamicRangeFilter, LTIEmbeddedImage, LTIMultiResFilter, and LTIWatermarkFilter.

LT_STATUS LTIImageFilter::init ( LTIImageStage previousStage  )  [protected]

void LTIImageFilter::releasePreviousStageNow ( void   )  [protected]


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

LizardTech