| VRS - The Virtual Rendering System |
| version 3.3 |
#include <vrs/image/imagemanipulator.h>

Public Member Functions | |
| ImageManipulator () | |
| An ImageManipulator modifies the contents of an images. | |
| virtual Image * | manipulate (Image *image) |
| virtual Image * | manipulate (Image *srcImage, Image *dstImage)=0 |
| virtual bool | operatesInPlace () const |
| VRS_TYPEINFO (ImageManipulator, SharedObj) | |
Static Public Member Functions | |
| static bool | sameDataType (Image *srcImage, Image *dstImage) |
| static bool | sameLayers (Image *srcImage, Image *dstImage) |
| static Area | calculateROI (Image *srcI, Image *dstI) |
Protected Member Functions | |
| virtual bool | checkSizes (Image *srcImage, Image *dstImage) const |
| VRS::ImageManipulator::ImageManipulator | ( | ) |
An ImageManipulator modifies the contents of an images.
The image operation is executed for the given image, i.e., the result of the image operation is stored in that image, too. A temporal buffer might be necessary to perform the image operation. The handle of the given image is returned.
Reimplemented in VRS::ImageManipulatorList, VRS::PaletteImage2RGB, and VRS::RGB2PaletteImage.
| virtual Image* VRS::ImageManipulator::manipulate | ( | Image * | srcImage, | |
| Image * | dstImage | |||
| ) | [pure virtual] |
The image operation is apply to the source image and the the resulting image is stored in the target image. The handle of the target image is returned.
Implemented in VRS::ImageBlend, VRS::ImageConvolution, VRS::ImageCopyOp, VRS::ImageDitherOp, VRS::ImageEdgeDetector, VRS::ImageFilterOp, VRS::ImageManipulatorList, VRS::ImageModulate, VRS::ImagePixelFilter, VRS::ImagePixelOp, VRS::ImageRegionOp, VRS::ImageSizeAdjuster, VRS::PaletteImage2RGB, and VRS::RGB2PaletteImage.
| virtual bool VRS::ImageManipulator::operatesInPlace | ( | ) | const [virtual] |
Returns whether the image operation can be performed for a given image in place.
Reimplemented in VRS::ImageBlend, VRS::ImageConvolution, VRS::ImageCopyOp, VRS::ImageDitherOp, VRS::ImageEdgeDetector, VRS::ImageFilterOp, VRS::ImageModulate, VRS::ImagePixelFilter, VRS::ImagePixelOp, VRS::ImageRegionOp, and VRS::ImageSizeAdjuster.
For a pair of source and destination images, these methods check for compatibility, i.e., whether the images do have the the same image data type and same image layer sequence.
Both source and destination images have a region-of-interest. Any image operation uses the src-roi and copies the result into the dest-roi, whereby the src-roi is adjusted over the dst-roi and only the intersection area of both are actually used. For example, if the src-roi is smaller than the dst-roi, only part of the dst-roi are actually used. A region-of-interest can specify width and height by -1 indicating that the whole image width and height can be used.
| virtual bool VRS::ImageManipulator::checkSizes | ( | Image * | srcImage, | |
| Image * | dstImage | |||
| ) | const [protected, virtual] |
| VRS::ImageManipulator::VRS_TYPEINFO | ( | ImageManipulator | , | |
| SharedObj | ||||
| ) |