As described in the previous chapter, a hierarchy of several classes is used to represent images, image stages, and the image pipeline. See Figure 1.
Figure 1: Inheritance
The LTIImage
class represents the properties of an image, including:
The LTIImageStage
class extends LTIImage
by adding:
The LTIImageReader and LTIImageFilter classes extend LTIImageStage in order to more closely reflect their positions and operations in the image pipeline. These two classes are discussed in subsequent chapters.
While the LTIImageWriter class does not inherit from any of the other LTIImage classes; it replicates some of the same functionality (such as strip-based operations and delegate control) so that it can be used as a client of an image pipeline. The LTIGeoFileImageWriter class is derived from LTIImageWriter to aid in implemented image writers. LTIGeoFileImageWriter extends LTIImageWriter to provide the ability to output to a specific form (stream or file) and optionally generate world files.
The LTIImageStageManager is a base class for managing a set of LTIImageStage objects – it can be thought of as an array of such objects. It used for passing a set of image stages to an LTIImageMosaicFilter and enabling the mosaic filter to reduce its resource usage. The LTIImageStageManager is also used for “wrapping” file formats that can hold multiple images.