You are here: Concrete Image Readers, Filters and Writers > Image Filters

## Image Filters

The `LTIImageFilter` class is derived from the `LTIImageStage` class and is used as the base class for implementing specific (and generally simple) image transformations. The following image readers are supplied with this SDK:

- `LTIAddAlphaFilter`: This class adds an alpha band to an image that does not have one, based on the image's transparency. This is useful for MG4 encoding pipelines.
- `LTIBandSelectFilter`: This class creates a single image which is a composition of selected bands from a set of source images. It can be used, among other things, to remap the color bands of a single image (formerly `LTISampleMapFilter`) or to merge several greyscale images into a single image (formerly `LTIColorCompositeFilter`).
- `LTIColorTransformer`: changes the colorspace of an image. The supported transforms include transforming to and from RGB, grayscale, and CMYK.
- `LTICropFilter`: crops the image to a smaller width and height. Note that this is a reduction in image size; this is a true crop, so some data will be lost.
- `LTIDynamicRangeFilter`: adjusts the sample values of the image to fit the given dynamic range by scaling the values by appropriate amounts. This is useful as a preprocessing step to displaying datasets that don't use the full precision of their datatypes, for example 7- or 12-bit data.
- `LTIEmbeddedImage`: creates a new image of the given size, containing the input image "embedded" within it. This class is used to make an image "larger" by increasing its width and height without actually stretching the image itself, for example to place an image on a larger "canvas" so as to provide it with a larger background. (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.)
- `LTIMosaicFilter`: creates a single mosaicked image from a set of input images. The set of input images are all assumed to be in the same coordinate space.
- `LTIMultiresFilter`: 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 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.
- `LTIStaticZoomFilter`: magnifies the image by a fixed amount. In effect this simply changes the width and height of the image statically, i.e. for the life of the pipeline.
- `LTITranslationFilter`: translates (moves) the geo coordinates of the image.
- `LTIViewerImageFilter`: performs certain datatype and colorspace transforms on an image to make it more readily displayable. This class wraps the `LTIDataTypeTransformer`, `LTIColorTransformer`, and `LTIDynamicRangeFilter` classes in order to transform the input image into an 8-bit datatype with colorspace grayscale or RGB, as this is the format required by most display engines.
- `LTIWatermarkFilter`: inserts a watermark image onto the current image stage at a given position. The "watermark" is represented as an input image stage and must have the same pixel properties (colorspace, datatype, etc.) as the image it is to be inserted into.

###### Examples

The Reference Manual contains several examples of working with image filters, including code showing how to insert a filter into an image pipeline and how to derive your own simple filter from `LTIImageFilter`.