MrSID Decode SDK for Raster Reference Manual  9.5.4.4709
LTIMultiResFilter Class Reference

add resolutions to the image More...

#include <lti_multiresFilter.h>

Inheritance diagram for LTIMultiResFilter:

Public Member Functions

LT_STATUS initialize (LTIImageStage *srcImage)
 initializer More...
 
LT_STATUS initialize (LTIImageStage *srcImage, lt_int8 scaleFactor)
 initializer (for compatibly with the old LTIStaticZoomFilter) More...
 
LT_STATUS initialize (LTIImageStage *srcImage, double deltaMag, double minMag, double maxMag)
 
LT_STATUS getDimsAtMag (double mag, lt_uint32 &width, lt_uint32 &height) const
 
lt_int64 getEncodingCost (const LTIScene &scene) const
 
bool getReaderScene (const LTIScene &decodeScene, LTIScene &readerScene) const
 
virtual lt_uint32 getModifications (const LTIScene &scene) const
 
bool getPipelineInfo (LTIPipelineInfo info) const
 
LT_STATUS setResampleMethod (LTIResampleMethod resampleMethod)
 Set resampling method. More...
 
LT_STATUS setResamplePixelCenter (bool usePixelCenter)
 
void setMagSnapThreshold (double threshold)
 
void setDeltaMagXY (double deltaMagX, double deltaMagY)
 

Static Public Member Functions

static LTIMultiResFiltercreate (void)
 
static double magForIcon (const LTIImage &image, lt_uint32 iconSize)
 
static double magForIcon (lt_uint32 width, lt_uint32 height, lt_uint32 iconSize)
 
static LT_STATUS push (LTIImageStage *&pipeline, const LTIScene &dstScene, LTIResampleMethod method=LTI_RESAMPLE_NEAREST)
 
static LT_STATUS push (LTIImageStage *&pipeline, double mag, LTIResampleMethod method=LTI_RESAMPLE_NEAREST)
 

Protected Types

enum  Mode {
  MODE_INVALID, MODE_RESAMPLE, MODE_PASSTHROUGH, MODE_DOWNSAMPLE_FULLREAD,
  MODE_ALL_AT_ONCE
}
 
enum  { kMaxMagnification = 512 }
 

Protected Member Functions

 LTIMultiResFilter (void)
 
virtual ~LTIMultiResFilter (void)
 
LT_STATUS decodeBegin (const LTIPixel &pixelProps, const LTIScene &fullScene)
 
LT_STATUS decodeStrip (LTISceneBuffer &stripBuffer, const LTIScene &stripScene)
 
LT_STATUS decodeEnd (void)
 
bool getChildScene (const LTIScene &scene, Mode &mode, double &xScale, double &yScale, LTIScene &childScene) const
 

Detailed Description

Extends the magnification range of an image, to allow decodes at different resolutions than the image stage would normally allow.

Note that this class is not the same as at the LTIStaticZoomFilter class, which scales the magnification statically for the pipeline when initially constructed. This class allows for the zoom level to be extended for an individual decode operation.

Definition at line 39 of file lti_multiresFilter.h.

Member Enumeration Documentation

anonymous enum
protected
Enumerator
kMaxMagnification 

Definition at line 143 of file lti_multiresFilter.h.

enum LTIMultiResFilter::Mode
protected
Enumerator
MODE_INVALID 
MODE_RESAMPLE 
MODE_PASSTHROUGH 
MODE_DOWNSAMPLE_FULLREAD 
MODE_ALL_AT_ONCE 

Definition at line 128 of file lti_multiresFilter.h.

Constructor & Destructor Documentation

LTIMultiResFilter::LTIMultiResFilter ( void  )
protected
virtual LTIMultiResFilter::~LTIMultiResFilter ( void  )
protectedvirtual

Member Function Documentation

static LTIMultiResFilter* LTIMultiResFilter::create ( void  )
static
LT_STATUS LTIMultiResFilter::decodeBegin ( const LTIPixel pixelProps,
const LTIScene fullScene 
)
protected
LT_STATUS LTIMultiResFilter::decodeEnd ( void  )
protected
LT_STATUS LTIMultiResFilter::decodeStrip ( LTISceneBuffer stripBuffer,
const LTIScene stripScene 
)
protected
bool LTIMultiResFilter::getChildScene ( const LTIScene scene,
Mode mode,
double &  xScale,
double &  yScale,
LTIScene childScene 
) const
protected
LT_STATUS LTIMultiResFilter::getDimsAtMag ( double  mag,
lt_uint32 width,
lt_uint32 height 
) const
lt_int64 LTIMultiResFilter::getEncodingCost ( const LTIScene scene) const
virtual lt_uint32 LTIMultiResFilter::getModifications ( const LTIScene scene) const
virtual
bool LTIMultiResFilter::getPipelineInfo ( LTIPipelineInfo  info) const
bool LTIMultiResFilter::getReaderScene ( const LTIScene decodeScene,
LTIScene readerScene 
) const
LT_STATUS LTIMultiResFilter::initialize ( LTIImageStage srcImage)

Creates an image stage which can be decoded at arbitrary magnifications.

Normally image stages will only support a limited set of magnification values for the LTIScene passed to LTIImageStage::read() – often, only 1.0. This class will perform any needed resampling on the fly so that arbitrary (power-of-two) magnifications are supported.

Parameters
srcImagethe base image
LT_STATUS LTIMultiResFilter::initialize ( LTIImageStage srcImage,
lt_int8  scaleFactor 
)

Magnifies the image by the scale factor given. The image width, height, geographic resolution, etc, are all updated accordingly.

A positive scale factor performs a "res-up" operation, while a negative scale factor will reduce the image. That is, a scale factor of 2 will double the image size, e.g. from a magnification of 1.0 to 2.0, while a scale factor of -2 will halve the image size, e.g. from a magnification of 1.0 to 0.5.

Parameters
srcImagethe base image
scaleFactorthe integer scale factor
LT_STATUS LTIMultiResFilter::initialize ( LTIImageStage srcImage,
double  deltaMag,
double  minMag,
double  maxMag 
)
static double LTIMultiResFilter::magForIcon ( const LTIImage image,
lt_uint32  iconSize 
)
static
static double LTIMultiResFilter::magForIcon ( lt_uint32  width,
lt_uint32  height,
lt_uint32  iconSize 
)
static
static LT_STATUS LTIMultiResFilter::push ( LTIImageStage *&  pipeline,
const LTIScene dstScene,
LTIResampleMethod  method = LTI_RESAMPLE_NEAREST 
)
static
static LT_STATUS LTIMultiResFilter::push ( LTIImageStage *&  pipeline,
double  mag,
LTIResampleMethod  method = LTI_RESAMPLE_NEAREST 
)
static
void LTIMultiResFilter::setDeltaMagXY ( double  deltaMagX,
double  deltaMagY 
)
void LTIMultiResFilter::setMagSnapThreshold ( double  threshold)
LT_STATUS LTIMultiResFilter::setResampleMethod ( LTIResampleMethod  resampleMethod)
Parameters
resampleMethodresampling method See LTIResampleMethod
LT_STATUS LTIMultiResFilter::setResamplePixelCenter ( bool  usePixelCenter)

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

LizardTech