00001
00002
00003
00004
00005
00006
00007
00008
00009
00011
00012
00013 #ifndef LTI_IMAGE_H
00014 #define LTI_IMAGE_H
00015
00016
00017 #include "lti_types.h"
00018 #include "lti_referenceCountedObject.h"
00019
00020
00021 LT_BEGIN_NAMESPACE(LizardTech)
00022
00023
00032 class LTIImage : public LTIReferenceCountedObject
00033 {
00034 LTI_REFERENCE_COUNTED_BOILERPLATE_BASE(LTIImage);
00035 public:
00043 virtual lt_uint32 getWidth() const = 0;
00044
00052 virtual lt_uint32 getHeight() const = 0;
00053
00065 virtual LT_STATUS getDimsAtMag(double mag,
00066 lt_uint32 &width,
00067 lt_uint32 &height) const = 0;
00068
00079 lt_uint16 getNumBands() const;
00080
00091 lt_uint16 getNumBandsWithoutAlpha() const;
00092
00102 LTIColorSpace getColorSpace() const;
00103
00114 LTIDataType getDataType() const;
00115
00124 virtual const LTIPixel& getPixelProps() const = 0;
00125
00135 virtual const LTIPixel* getBackgroundPixel() const = 0;
00136
00146 virtual const LTIPixel* getNoDataPixel() const = 0;
00147
00157 virtual const LTIPixelLookupTable* getPixelLookupTable() const = 0;
00158
00167 virtual const LTIPixel &getMinDynamicRange() const = 0;
00168
00177 virtual const LTIPixel &getMaxDynamicRange() const = 0;
00178
00187 bool isNaturalDynamicRange() const;
00199 virtual const LTIGeoCoord& getGeoCoord() const = 0;
00200
00209 virtual bool isGeoCoordImplicit() const = 0;
00210
00219 virtual const LTIMetadataDatabase &getMetadata() const = 0;
00220
00231 virtual double getMinMagnification() const = 0;
00232
00243 virtual double getMaxMagnification() const = 0;
00244
00256 virtual bool isSelective() const = 0;
00257
00267 virtual lt_uint32 getModifications(const LTIScene &scene) const = 0;
00268
00269
00280 virtual LT_STATUS getMetadataBlob(const char *type, LTIOStreamInf *&stream) const = 0;
00281
00282
00298 lt_int64 getNominalImageSizeWithoutAlpha() const;
00299
00315 lt_int64 getNominalImageSizeWithAlpha() const;
00316
00326 void getGeoPoint(LTIPosition position, double& x, double& y) const;
00327
00340 LTIPixel* createBackgroundPixel() const;
00341 };
00342
00343 LT_END_NAMESPACE(LizardTech)
00344
00345 #endif // LTI_IMAGE_H