iipsrv 1.2
iipsrv is an advanced high-performance feature-rich image server for web-based streamed viewing and zooming of ultra high-resolution images
IIPImage Class Reference

Main class to handle the pyramidal image source. More...

#include <IIPImage.h>

Inheritance diagram for IIPImage:
KakaduImage OpenJPEGImage TPTImage

Public Member Functions

 IIPImage ()
 Default Constructor.
 
 IIPImage (const std::string &s)
 Constructer taking the image path as parameter.
 
 IIPImage (const IIPImage &image)
 Copy Constructor taking reference to another IIPImage object.
 
virtual ~IIPImage ()
 Virtual Destructor.
 
void Initialise ()
 Test the image and initialise some parameters.
 
void swap (IIPImage &a, IIPImage &b)
 Swap function.
 
std::list< int > getVerticalViewsList () const
 Return a list of available vertical angles.
 
std::list< int > getHorizontalViewsList () const
 Return a list of horizontal angles.
 
const std::string & getImagePath () const
 Return the image path.
 
const std::string getFileName (int x, int y)
 Return the full file path for a particular horizontal and vertical angle.
 
ImageFormat getImageFormat () const
 Get the image format.
 
void updateTimestamp (const std::string &s)
 Get the image timestamp.
 
const std::string getTimestamp ()
 Get a HTTP RFC 1123 formatted timestamp.
 
bool set () const
 Check whether this object has been initialised.
 
void setFileSystemPrefix (const std::string &prefix)
 Set a file system prefix for added security.
 
void setFileSystemSuffix (const std::string &s)
 Set a file system suffix.
 
void setFileNamePattern (const std::string &pattern)
 Set the file name pattern used in image sequences.
 
unsigned int getNumResolutions () const
 Return the number of available resolutions in the image.
 
int getNativeResolution (const int res) const
 Return index of the resolution within the image file.
 
unsigned int getNumBitsPerPixel () const
 Return the number of bits per pixel for this image.
 
unsigned int getNumChannels () const
 Return the number of channels for this image.
 
float getMinValue (int n=0) const
 Return the minimum sample value for each channel.
 
float getMaxValue (int n=0) const
 Return the minimum sample value for each channel.
 
SampleType getSampleType () const
 Return the sample format type.
 
unsigned int getImageWidth (int n=0) const
 Return the image width in pixels for a given resolution.
 
unsigned int getImageHeight (int n=0) const
 Return the image height in pixels for a given resolution.
 
unsigned int getTileWidth (int n=-1) const
 Return the tile width in pixels for a given resolution.
 
unsigned int getTileHeight (int n=-1) const
 Return the tile height in pixels for a given resolution.
 
ColourSpaces getColourSpace () const
 Return the colour space for this image.
 
bool isStack () const
 Return whether image is a single-file image stack.
 
std::list< StackgetStack () const
 Load stack info.
 
const std::string & getMetadata (const std::string &index)
 Return image metadata.
 
float getHorizontalDPI () const
 Return physical resolution (DPI) in pixels/meter horizontally.
 
float getVerticalDPI () const
 Return physical resolution (DPI) in pixels/meter vertically.
 
virtual bool regionDecoding ()
 Return whether this image type directly handles region decoding.
 
virtual void Load (const std::string &module)
 Load the appropriate codec module for this image type.
 
virtual std::string getDescription () const
 Return codec description: Overloaded by child class.
 
virtual void openImage ()
 Open the image: Overloaded by child class.
 
virtual void loadImageInfo (int x, int y)
 Load information about the image eg. number of channels, tile size etc.
 
virtual void closeImage ()
 Close the image: Overloaded by child class.
 
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.
 
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.
 
IIPImageoperator= (IIPImage image)
 Assignment operator.
 

Static Public Member Functions

static void setupLogging ()
 Setup logging for codec library errors and warnings.
 

Public Attributes

std::vector< unsigned int > image_widths
 The image pixel dimensions.
 
std::vector< unsigned int > image_heights
 
std::vector< unsigned int > tile_widths
 The tile dimensions for each resolution.
 
std::vector< unsigned int > tile_heights
 
ColourSpaces colourspace
 The colour space of the image.
 
float dpi_x
 Native physical resolution in both X and Y.
 
float dpi_y
 
int dpi_units
 Units for native physical resolution.
 
unsigned int numResolutions
 The number of available resolutions in this image.
 
unsigned int bpc
 The bits per channel for this image.
 
unsigned int channels
 The number of channels for this image.
 
SampleType sampleType
 The sample format type (fixed or floating point)
 
std::vector< float > min
 The min and max sample value for each channel.
 
std::vector< float > max
 
unsigned int quality_layers
 Quality layers.
 
bool isSet
 Indicate whether we have opened and initialised some parameters for this image.
 
int currentX
 If we have an image sequence, the current X and Y position.
 
int currentY
 
std::vector< unsigned int > histogram
 Image histogram.
 
std::map< const std::string, std::string > metadata
 STL map to hold string metadata.
 
time_t timestamp
 Image modification timestamp.
 

Static Public Attributes

static bool logging
 Our logging stream - declared statically.
 

Protected Attributes

std::list< int > horizontalAnglesList
 The list of available horizontal angles (for image sequences)
 
std::list< int > verticalAnglesList
 The list of available vertical angles (for image sequences)
 
std::vector< int > lut
 LUT.
 
unsigned int virtual_levels
 Number of resolution levels that don't physically exist in file.
 
ImageFormat format
 Return the image format e.g. tif.
 
PyramidType pyramid
 Define how pyramid is structured.
 
std::list< Stackstack
 Whether we have an image stack consisting of multiple images within a single file.
 
std::vector< uint32_t > resolution_ids
 

Friends

int operator== (const IIPImage &, const IIPImage &)
 Comparison equality operator.
 
int operator!= (const IIPImage &, const IIPImage &)
 Comparison non-equality operator.
 

Detailed Description

Main class to handle the pyramidal image source.

Provides functions to open, get various information from an image source and get individual tiles. This class is the base class for specific image file formats such as Tiled Pyramidal TIFF images via TPTImage.h and JPEG2000 via Kakadu.h

Constructor & Destructor Documentation

◆ IIPImage() [1/2]

IIPImage::IIPImage ( const std::string &  s)
inline

Constructer taking the image path as parameter.

Parameters
simage path

◆ IIPImage() [2/2]

IIPImage::IIPImage ( const IIPImage image)
inline

Copy Constructor taking reference to another IIPImage object.

Parameters
imageIIPImage object

Member Function Documentation

◆ closeImage()

virtual void IIPImage::closeImage ( )
inlinevirtual

Close the image: Overloaded by child class.

Reimplemented in KakaduImage, OpenJPEGImage, and TPTImage.

◆ getFileName()

const std::string IIPImage::getFileName ( int  x,
int  y 
)

Return the full file path for a particular horizontal and vertical angle.

Parameters
xhorizontal sequence angle
yvertical sequence angle

◆ getImageHeight()

unsigned int IIPImage::getImageHeight ( int  n = 0) const
inline

Return the image height in pixels for a given resolution.

Parameters
nresolution number (0 is default and full size image)

◆ getImageWidth()

unsigned int IIPImage::getImageWidth ( int  n = 0) const
inline

Return the image width in pixels for a given resolution.

Parameters
nresolution number (0 is default and full size image)

References image_widths.

◆ getMaxValue()

float IIPImage::getMaxValue ( int  n = 0) const
inline

Return the minimum sample value for each channel.

Parameters
nchannel index

◆ getMetadata()

const std::string & IIPImage::getMetadata ( const std::string &  index)
inline

Return image metadata.

Parameters
indexmetadata field name

References metadata.

◆ getMinValue()

float IIPImage::getMinValue ( int  n = 0) const
inline

Return the minimum sample value for each channel.

Parameters
nchannel index

References min.

◆ getNativeResolution()

int IIPImage::getNativeResolution ( const int  res) const
inline

Return index of the resolution within the image file.

Parameters
resIIP protocol resolution level where 0 is smallest image

References numResolutions.

Referenced by getTileHeight(), and getTileWidth().

◆ getRegion()

virtual RawTile IIPImage::getRegion ( int  ha,
int  va,
unsigned int  r,
int  layers,
int  x,
int  y,
unsigned int  w,
unsigned int  h 
)
inlinevirtual

Return a region for a given angle and resolution.

Return a RawTile object: Overloaded by child class.

Parameters
hahorizontal angle
vavertical angle
rresolution
layersnumber of layers to decode
xoffset in x direction
yoffset in y direction
wwidth of region
hheight of region
Returns
RawTile image

Reimplemented in KakaduImage, and OpenJPEGImage.

◆ getTile()

virtual RawTile IIPImage::getTile ( int  h,
int  v,
unsigned int  r,
int  l,
unsigned int  t 
)
inlinevirtual

Return an individual tile for a given angle and resolution.

Return a RawTile object: Overloaded by child class.

Parameters
hhorizontal angle
vvertical angle
rresolution
lquality layers
ttile number

Reimplemented in KakaduImage, OpenJPEGImage, and TPTImage.

◆ getTileHeight()

unsigned int IIPImage::getTileHeight ( int  n = -1) const
inline

Return the tile height in pixels for a given resolution.

Parameters
nIIP resolution (tile size for full reslolution image by default)

References getNativeResolution().

◆ getTileWidth()

unsigned int IIPImage::getTileWidth ( int  n = -1) const
inline

Return the tile width in pixels for a given resolution.

Parameters
nIIP resolution (tile size for full resolution image by default)

References getNativeResolution(), and tile_widths.

◆ Load()

virtual void IIPImage::Load ( const std::string &  module)
inlinevirtual

Load the appropriate codec module for this image type.

Used only for dynamically loading codec modules. Overloaded by DSOImage class.

Parameters
modulethe codec module path

◆ loadImageInfo()

virtual void IIPImage::loadImageInfo ( int  x,
int  y 
)
inlinevirtual

Load information about the image eg. number of channels, tile size etc.

Parameters
xhorizontal sequence angle
yvertical sequence angle

Reimplemented in KakaduImage, OpenJPEGImage, and TPTImage.

◆ openImage()

virtual void IIPImage::openImage ( )
inlinevirtual

Open the image: Overloaded by child class.

Reimplemented in KakaduImage, OpenJPEGImage, and TPTImage.

◆ operator=()

IIPImage & IIPImage::operator= ( IIPImage  image)
inline

Assignment operator.

Parameters
imageIIPImage object

References swap().

Referenced by KakaduImage::operator=(), and TPTImage::operator=().

◆ regionDecoding()

virtual bool IIPImage::regionDecoding ( )
inlinevirtual

Return whether this image type directly handles region decoding.

Reimplemented in KakaduImage, and OpenJPEGImage.

◆ swap()

void IIPImage::swap ( IIPImage a,
IIPImage b 
)

Swap function.

Parameters
aObject to copy to
bObject to copy from

Referenced by operator=().

◆ updateTimestamp()

void IIPImage::updateTimestamp ( const std::string &  s)

Get the image timestamp.

Parameters
sfile path

Member Data Documentation

◆ dpi_units

int IIPImage::dpi_units

Units for native physical resolution.

0=unknown, 1=pixels/inch, 2=pixels/cm

Referenced by getHorizontalDPI(), and getVerticalDPI().


The documentation for this class was generated from the following file: