29 #define snprintf _snprintf
45 file_error(std::string s) : std::runtime_error(s) { }
50 enum ImageFormat { TIF, JPEG2000, UNSUPPORTED };
66 std::string imagePath;
69 std::string fileSystemPrefix;
72 std::string fileNamePattern;
84 void measureHorizontalAngles();
87 void measureVerticalAngles();
90 std::list <int> horizontalAnglesList;
93 std::list <int> verticalAnglesList;
99 std::vector <int>
lut;
132 std::vector <float>
min, max;
144 std::map <const std::string, std::string>
metadata;
156 format( UNSUPPORTED ),
163 sampleType( FIXEDPOINT ),
177 format( UNSUPPORTED ),
184 sampleType( FIXEDPOINT ),
195 : imagePath( image.imagePath ),
196 fileSystemPrefix( image.fileSystemPrefix ),
197 fileNamePattern( image.fileNamePattern ),
198 isFile( image.isFile ),
199 suffix( image.suffix ),
200 horizontalAnglesList( image.horizontalAnglesList ),
201 verticalAnglesList( image.verticalAnglesList ),
203 virtual_levels( image.virtual_levels ),
204 format( image.format ),
205 image_widths( image.image_widths ),
206 image_heights( image.image_heights ),
207 tile_width( image.tile_width ),
208 tile_height( image.tile_height ),
209 colourspace( image.colourspace ),
210 numResolutions( image.numResolutions ),
212 channels( image.channels ),
213 sampleType( image.sampleType ),
216 quality_layers( image.quality_layers ),
217 isSet( image.isSet ),
218 currentX( image.currentX ),
219 currentY( image.currentY ),
220 metadata( image.metadata ),
221 timestamp( image.timestamp ) {};
315 return metadata[index];
325 virtual void Load(
const std::string& module ) {;};
328 virtual const std::string
getDescription() {
return std::string(
"IIPImage Base Class" ); };
366 virtual RawTile getRegion(
int ha,
int va,
unsigned int r,
int layers,
int x,
int y,
unsigned int w,
unsigned int h ){
return RawTile(); };
371 swap( *
this, image );
float getMaxValue(int n=0)
Return the minimum sample value for each channel.
Definition: IIPImage.h:288
void swap(IIPImage &a, IIPImage &b)
Swap function.
friend int operator!=(const IIPImage &, const IIPImage &)
Comparison non-equality operator.
unsigned int getNumBitsPerPixel()
Return the number of bits per pixel for this image.
Definition: IIPImage.h:275
unsigned int getTileWidth()
Return the base tile width in pixels.
Definition: IIPImage.h:307
SampleType getSampleType()
Return the sample format type.
Definition: IIPImage.h:291
float getMinValue(int n=0)
Return the minimum sample value for each channel.
Definition: IIPImage.h:283
unsigned int getImageWidth(int n=0)
Return the image width in pixels for a given resolution.
Definition: IIPImage.h:296
time_t timestamp
Image modification timestamp.
Definition: IIPImage.h:147
std::map< const std::string, std::string > metadata
STL map to hold string metadata.
Definition: IIPImage.h:144
void Initialise()
Test the image and initialise some parameters.
bool set()
Check whether this object has been initialised.
Definition: IIPImage.h:263
unsigned int getNumResolutions()
Return the number of available resolutions in the image.
Definition: IIPImage.h:272
unsigned int getNumChannels()
Return the number of channels for this image.
Definition: IIPImage.h:278
unsigned int numResolutions
The number of available resolutions in this image.
Definition: IIPImage.h:120
std::vector< float > min
The min and max sample value for each channel.
Definition: IIPImage.h:132
virtual RawTile getTile(int h, int v, unsigned int r, int l, unsigned int t)
Return an individual tile for a given angle and resolution.
Definition: IIPImage.h:351
void updateTimestamp(const std::string &s)
Get the image timestamp.
unsigned int virtual_levels
Number of resolution levels that don't physically exist in file.
Definition: IIPImage.h:102
IIPImage()
Default Constructor.
Definition: IIPImage.h:153
unsigned int getTileHeight()
Return the base tile height in pixels for a given resolution.
Definition: IIPImage.h:304
unsigned int quality_layers
Quality layers.
Definition: IIPImage.h:135
virtual bool regionDecoding()
Return whether this image type directly handles region decoding.
Definition: IIPImage.h:319
const std::string & getImagePath()
Return the image path.
Definition: IIPImage.h:242
virtual const std::string getDescription()
Return codec description: Overloaded by child class.
Definition: IIPImage.h:328
IIPImage(const std::string &s)
Constructer taking the image path as parameter.
Definition: IIPImage.h:173
friend int operator==(const IIPImage &, const IIPImage &)
Comparison equality operator.
const std::string & getMetadata(const std::string &index)
Return image metadata.
Definition: IIPImage.h:314
std::list< int > getHorizontalViewsList()
Return a list of horizontal angles.
Definition: IIPImage.h:239
std::vector< int > lut
LUT.
Definition: IIPImage.h:99
unsigned int getImageHeight(int n=0)
Return the image height in pixels for a given resolution.
Definition: IIPImage.h:301
virtual RawTile getRegion(int ha, int va, unsigned int r, int layers, int x, int y, unsigned int w, unsigned int h)
Return a region for a given angle and resolution.
Definition: IIPImage.h:366
virtual void openImage()
Open the image: Overloaded by child class.
Definition: IIPImage.h:331
const std::string getTimestamp()
Get a HTTP RFC 1123 formatted timestamp.
Define our own derived exception class for file errors.
Definition: IIPImage.h:43
std::list< int > getVerticalViewsList()
Return a list of available vertical angles.
Definition: IIPImage.h:236
Main class to handle the pyramidal image source.
Definition: IIPImage.h:61
unsigned int tile_width
The base tile pixel dimensions.
Definition: IIPImage.h:114
IIPImage(const IIPImage &image)
Copy Constructor taking reference to another IIPImage object.
Definition: IIPImage.h:194
virtual void loadImageInfo(int x, int y)
Load information about the image eg. number of channels, tile size etc.
Definition: IIPImage.h:337
ImageFormat format
Return the image format e.g. tif.
Definition: IIPImage.h:105
void setFileSystemPrefix(const std::string &prefix)
Set a file system prefix for added security.
Definition: IIPImage.h:266
bool isSet
Indicate whether we have opened and initialised some parameters for this image.
Definition: IIPImage.h:138
ColourSpaces colourspace
The colour space of the image.
Definition: IIPImage.h:117
const std::string getFileName(int x, int y)
Return the full file path for a particular horizontal and vertical angle.
unsigned int channels
The number of channels for this image.
Definition: IIPImage.h:126
virtual void closeImage()
Close the image: Overloaded by child class.
Definition: IIPImage.h:340
IIPImage & operator=(IIPImage image)
Assignment operator.
Definition: IIPImage.h:370
int currentX
If we have an image sequence, the current X and Y position.
Definition: IIPImage.h:141
SampleType sampleType
The sample format type (fixed or floating point)
Definition: IIPImage.h:129
Class to represent a single image tile.
Definition: RawTile.h:45
void setFileNamePattern(const std::string &pattern)
Set the file name pattern used in image sequences.
Definition: IIPImage.h:269
ColourSpaces getColourSpace()
Return the colour space for this image.
Definition: IIPImage.h:310
virtual void Load(const std::string &module)
Load the appropriate codec module for this image type.
Definition: IIPImage.h:325
ImageFormat getImageFormat()
Get the image format.
Definition: IIPImage.h:252
virtual ~IIPImage()
Virtual Destructor.
Definition: IIPImage.h:224
unsigned int bpc
The bits per channel for this image.
Definition: IIPImage.h:123
std::vector< unsigned int > image_widths
The image pixel dimensions.
Definition: IIPImage.h:111