abstract class for implementing an image transform More...
#include <lti_imageFilter.h>
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 LTIPixel & | getPixelProps () const |
get the pixel properties of the image | |
const LTIPixel * | getBackgroundPixel () const |
get the values of the background pixel | |
const LTIPixel * | getNoDataPixel () const |
get the values of the "no data" (transparency) pixel | |
const LTIPixelLookupTable * | getPixelLookupTable () const |
get the color lookup table, if any | |
const LTIPixel & | getMinDynamicRange () const |
get the minimum dynamic range value of image | |
const LTIPixel & | getMaxDynamicRange () const |
get the maximum dynamic range value of image | |
const LTIGeoCoord & | getGeoCoord () const |
get the geographic coordinates of the image | |
bool | isGeoCoordImplicit () const |
is geo information "real" or not | |
const LTIMetadataDatabase & | getMetadata () 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 | |
LTIProgressDelegate * | getProgressDelegate () const |
get progress delegate | |
void | setInterruptDelegate (LTIInterruptDelegate *delegate) |
set interrupt delegate | |
LTIInterruptDelegate * | getInterruptDelegate () 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 |
LTIImageStage * | getPreviousStage (void) const |
Protected Member Functions | |
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) |
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.
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.
pixelProps | the band selection | |
fullScene | the full scene to be read |
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.
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.
stripBuffer | the buffer to read the pixels into | |
stripScene | the scene for this strip being decoded |
Implements LTIImageStage.
Reimplemented in LTIBandSelectFilter, LTIColorTransformer, LTIDynamicRangeFilter, LTIEmbeddedImage, LTIMultiResFilter, and LTIWatermarkFilter.
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.
Implements LTIImage.
Reimplemented in LTIOverrideBackgroundPixel< LTIOverrideGeoCoord< LTIImageFilter > >, LTIOverrideBackgroundPixel< LTIImageFilter >, and LTIOverrideBackgroundPixel< LTIOverrideMetadata< LTIImageFilter > >.
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.
mag | magnification to determine width at | |
width | the image width at the magnification | |
height | the image height at the magnification |
Implements LTIImage.
Reimplemented in LTIEmbeddedImage, and LTIMultiResFilter.
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.
scene | the scene to be charged for |
Implements LTIImageStage.
Reimplemented in J2KImageReader, LTIBandSelectFilter, LTIDynamicRangeFilter, LTIEmbeddedImage, LTIMultiResFilter, and MrSIDImageReader.
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))
Implements LTIImage.
Reimplemented in LTIOverrideGeoCoord< LTIOverrideMagnification< LTIOverrideStripHeight< LTIImageFilter > > >, and LTIOverrideGeoCoord< LTIImageFilter >.
lt_uint32 LTIImageFilter::getHeight | ( | ) | const [virtual] |
This function returns the height of the image, in pixels.
Implements LTIImage.
Reimplemented in LTIOverrideDimensions< LTIOverridePixelProps< LTIOverrideBackgroundPixel< LTIOverrideGeoCoord< LTIImageFilter > > > >, and LTIOverrideDimensions< LTIOverrideGeoCoord< LTIOverrideMagnification< LTIOverrideStripHeight< LTIImageFilter > > > >.
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.
Implements LTIImageStage.
LTIMaskSource* LTIImageFilter::getMask | ( | ) | const [virtual] |
Implements LTIImageStage.
const LTIPixel& LTIImageFilter::getMaxDynamicRange | ( | ) | const [virtual] |
This function returns the pixels of maximum value of the dynamic range of the image.
Implements LTIImage.
Reimplemented in LTIOverridePixelProps< LTIOverrideBackgroundPixel< LTIOverrideMetadata< LTIImageFilter > > >, LTIOverridePixelProps< LTIOverrideBackgroundPixel< LTIImageFilter > >, and LTIOverridePixelProps< LTIOverrideBackgroundPixel< LTIOverrideGeoCoord< LTIImageFilter > > >.
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.
Implements LTIImage.
Reimplemented in LTIOverrideMagnification< LTIOverrideStripHeight< LTIImageFilter > >.
const LTIMetadataDatabase& LTIImageFilter::getMetadata | ( | ) | const [virtual] |
This function returns a reference to the object containing the metadata associated with the image.
Implements LTIImage.
Reimplemented in LTIOverrideMetadata< LTIImageFilter >.
const LTIPixel& LTIImageFilter::getMinDynamicRange | ( | ) | const [virtual] |
This function returns the pixels of minimum value of the dynamic range of the image.
Implements LTIImage.
Reimplemented in LTIOverridePixelProps< LTIOverrideBackgroundPixel< LTIOverrideMetadata< LTIImageFilter > > >, LTIOverridePixelProps< LTIOverrideBackgroundPixel< LTIImageFilter > >, and LTIOverridePixelProps< LTIOverrideBackgroundPixel< LTIOverrideGeoCoord< LTIImageFilter > > >.
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.
Implements LTIImage.
Reimplemented in LTIOverrideMagnification< LTIOverrideStripHeight< LTIImageFilter > >.
This function returns a bitfield describing what kinds of modifications have been made to the image during and since its initial encoding.
scene | the area pertaining to this request |
Implements LTIImage.
Reimplemented in J2KImageReader, LTIBandSelectFilter, LTIColorTransformer, LTIDynamicRangeFilter, LTIEmbeddedImage, LTIMultiResFilter, LTITranslationFilter, LTIViewerImageFilter, LTIWatermarkFilter, and MrSIDImageReader.
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.
Implements LTIImage.
Reimplemented in LTIOverrideBackgroundPixel< LTIOverrideGeoCoord< LTIImageFilter > >, LTIOverrideBackgroundPixel< LTIImageFilter >, and LTIOverrideBackgroundPixel< LTIOverrideMetadata< LTIImageFilter > >.
bool LTIImageFilter::getPipelineInfo | ( | LTIPipelineInfo | info | ) | const [virtual] |
Implements LTIImageStage.
Reimplemented in LTIMultiResFilter.
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.
Implements LTIImage.
const LTIPixel& LTIImageFilter::getPixelProps | ( | ) | const [virtual] |
This function returns an object which describes the basic properties of a pixel in the image.
Implements LTIImage.
Reimplemented in LTIOverridePixelProps< LTIOverrideBackgroundPixel< LTIOverrideMetadata< LTIImageFilter > > >, LTIOverridePixelProps< LTIOverrideBackgroundPixel< LTIImageFilter > >, and LTIOverridePixelProps< LTIOverrideBackgroundPixel< LTIOverrideGeoCoord< LTIImageFilter > > >.
LTIImageStage* LTIImageFilter::getPreviousStage | ( | void | ) | const |
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.
Implements LTIImageStage.
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.
decodeScene | the scene that would be given to read() | |
readerScene | the scene that is the actual scene passed the underlying image reader |
Implements LTIImageStage.
Reimplemented in LTIEmbeddedImage, and LTIMultiResFilter.
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.
Implements LTIImageStage.
Reimplemented in LTIBandSelectFilter, and LTIOverrideStripHeight< LTIImageFilter >.
lt_uint32 LTIImageFilter::getWidth | ( | ) | const [virtual] |
This function returns the width of the image, in pixels.
Implements LTIImage.
Reimplemented in LTIOverrideDimensions< LTIOverridePixelProps< LTIOverrideBackgroundPixel< LTIOverrideGeoCoord< LTIImageFilter > > > >, and LTIOverrideDimensions< LTIOverrideGeoCoord< LTIOverrideMagnification< LTIOverrideStripHeight< LTIImageFilter > > > >.
LT_STATUS LTIImageFilter::init | ( | LTIImageStage * | previousStage | ) | [protected] |
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.
Implements LTIImage.
Reimplemented in LTIOverrideGeoCoord< LTIOverrideMagnification< LTIOverrideStripHeight< LTIImageFilter > > >, and LTIOverrideGeoCoord< LTIImageFilter >.
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.
Implements LTIImage.
This function is used to set the background color of the image.
backgroundPixel | the data for the background color |
Implements LTIImageStage.
Reimplemented in LTIOverrideBackgroundPixel< LTIOverrideGeoCoord< LTIImageFilter > >, LTIOverrideBackgroundPixel< LTIImageFilter >, and LTIOverrideBackgroundPixel< LTIOverrideMetadata< LTIImageFilter > >.
LT_STATUS LTIImageFilter::overrideDynamicRange | ( | const LTIPixel & | drmin, | |
const LTIPixel & | drmax | |||
) | [virtual] |
Implements LTIImageStage.
Reimplemented in LTIOverridePixelProps< LTIOverrideBackgroundPixel< LTIOverrideMetadata< LTIImageFilter > > >, LTIOverridePixelProps< LTIOverrideBackgroundPixel< LTIImageFilter > >, and LTIOverridePixelProps< LTIOverrideBackgroundPixel< LTIOverrideGeoCoord< LTIImageFilter > > >.
LT_STATUS LTIImageFilter::overrideGeoCoord | ( | const LTIGeoCoord & | geoCoord | ) | [virtual] |
This function is used to set the geographic coordinates of the image.
geoCoord | the geographic coordinate information |
Implements LTIImageStage.
Reimplemented in LTIOverrideGeoCoord< LTIOverrideMagnification< LTIOverrideStripHeight< LTIImageFilter > > >, and LTIOverrideGeoCoord< LTIImageFilter >.
LT_STATUS LTIImageFilter::overrideMetadata | ( | const LTIMetadataDatabase & | metadata | ) | [virtual] |
Implements LTIImageStage.
Reimplemented in LTIOverrideMetadata< LTIImageFilter >.
This function is used to set the "no data" or transparency color of the image.
nodataPixel | the data for the transparency color |
Implements LTIImageStage.
Reimplemented in LTIOverrideBackgroundPixel< LTIOverrideGeoCoord< LTIImageFilter > >, LTIOverrideBackgroundPixel< LTIImageFilter >, and LTIOverrideBackgroundPixel< LTIOverrideMetadata< LTIImageFilter > >.
Implements LTIImageStage.
Reimplemented in LTIOverridePixelProps< LTIOverrideBackgroundPixel< LTIOverrideMetadata< LTIImageFilter > > >, LTIOverridePixelProps< LTIOverrideBackgroundPixel< LTIImageFilter > >, and LTIOverridePixelProps< LTIOverrideBackgroundPixel< LTIOverrideGeoCoord< LTIImageFilter > > >.
LT_STATUS LTIImageFilter::overridePixelLookupTable | ( | const LTIPixelLookupTable * | pixelLookupTable | ) | [virtual] |
Implements LTIImageStage.
void LTIImageFilter::releasePreviousStageNow | ( | void | ) | [protected] |
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.
delegate | a pointer to the delegate object to be used by the image reader |
Implements LTIImageStage.
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.
delegate | a pointer to the delegate object to be used by the image reader |
Implements LTIImageStage.
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.)
stripHeight | the number of rows to decode at one time |
Implements LTIImageStage.
Reimplemented in LTIBandSelectFilter, and LTIOverrideStripHeight< LTIImageFilter >.
LizardTech |