HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
IMG_Stat Class Reference

Contains the details of a specific image file, used by IMG_File. This class contains all the high-level details needed to save an image file, or query a loaded image file's statistics. It contains such data as the resolution, pixel aspect ratios, data formats and image planes. The set() methods are used when creating a new IMG_Stat for writing an image file, while the get() methods are generally used when reading. More...

#include <IMG_Stat.h>

Public Types

typedef UT_SharedPtr
< IMG_DeepStat
img_DeepStatPtr
 

Public Member Functions

 IMG_Stat ()
 
 IMG_Stat (unsigned xres, unsigned yres)
 
 IMG_Stat (unsigned xres, unsigned yres, IMG_DataType dt, IMG_ColorModel cm)
 
 ~IMG_Stat ()
 
int64 getMemoryUsage (bool inclusive) const
 
 IMG_Stat (const IMG_Stat &s)
 
IMG_Statoperator= (const IMG_Stat &s)
 
void copy (const IMG_Stat &src)
 
void addEnvMapPlanes (IMG_DataType dt, IMG_ColorModel cm)
 
bool isEnvMap () const
 isEnvMap() will return true, only if the image is an environment map. More...
 
bool setEnvMap ()
 
void reorderPlane (IMG_Plane *plane, int beforeindex)
 Alters the order of planes in the stat. More...
 
int getDataWidth () const
 
int getDataHeight () const
 
int getNumFrames () const
 
void setNumFrames (int nf)
 
fpreal getFPS () const
 
void setFPS (fpreal fps)
 
fpreal getRenderTime () const
 
void setRenderTime (fpreal t)
 Sets the render time from the image file. More...
 
int64 getRenderMemory () const
 
void setRenderMemory (int64 mem)
 Sets the render time from the image file. More...
 
int64 getComponentCount () const
 Returns the total number of components across all planes. More...
 
int64 getDeepPixelComponentCount () const
 
int64 bytesPerPixel () const
 Returns the number of bytes for a single pixel made up of all planes. More...
 
int64 bytesPerImage () const
 
int64 bytesPerScanline () const
 
void setColorSpace (PXL_ColorSpace cs, fpreal gamma=0.0)
 
void setColorSpaceForUnknownPlanes (PXL_ColorSpace cs, fpreal gamma=0.0)
 
void setImageType (IMG_ImageType it)
 
IMG_ImageType getImageType () const
 
void setResolution (unsigned xres, unsigned yres)
 
unsigned getXres () const
 
unsigned getYres () const
 
void setAspectRatio (fpreal aspect)
 
fpreal getAspectRatio () const
 
void setFilename (const char *name)
 
const UT_StringgetFilename () const
 
int getNumPlanes () const
 Returns the number of image planes in the image a plane contains the actual structure of the image data. An image needs at least one. Deep rasters can have multiple planes. More...
 
IMG_PlanegetPlane (int i=0) const
 Get an image plane by index. More...
 
IMG_PlanegetPlaneName (const char *name) const
 Get an image plane by name Returns the plane with name 'name', or NULL if no matching plane is found. More...
 
int getPlaneIndex (const char *name) const
 Returns the index of the plane with 'name' Returns the index of the plane with name 'name', or -1 if not found. More...
 
void removePlane (int pindex)
 
void removePlane (const char *name)
 Remove a plane by index from the stat. Used only for writing files. More...
 
void removeAllPlanes ()
 Remove all planes from the stat. Used only for writing files. More...
 
void swapPlaneOrder (int plane_a, int plane_b)
 
void swapPlaneOrder (const IMG_Plane *p, int plane_b)
 
void setDataWindow (const UT_DimRect &win)
 Manipulate the data window of an image. The data window is constant across all planes. It may be smaller than the actual resolution (crop region) or larger. The data window is inclusive in that x2 and y2 are part of the region. You can also use the UT_DimRect versions for easier manipulations of the area. Image data is only defined for the area contained by the data window. By default, it is (0,0) - (xres-1, yres-1) (the entire image). More...
 
void setDataWindow (int x1, int y1, int x2, int y2)
 Manipulate the data window of an image. The data window is constant across all planes. It may be smaller than the actual resolution (crop region) or larger. The data window is inclusive in that x2 and y2 are part of the region. You can also use the UT_DimRect versions for easier manipulations of the area. Image data is only defined for the area contained by the data window. By default, it is (0,0) - (xres-1, yres-1) (the entire image). More...
 
void clearDataWindow ()
 Manipulate the data window of an image. The data window is constant across all planes. It may be smaller than the actual resolution (crop region) or larger. The data window is inclusive in that x2 and y2 are part of the region. You can also use the UT_DimRect versions for easier manipulations of the area. Image data is only defined for the area contained by the data window. By default, it is (0,0) - (xres-1, yres-1) (the entire image). More...
 
void getDataWindow (UT_DimRect &r) const
 Get the data window of an image. More...
 
void getDataWindow (int &x1, int &y1, int &x2, int &y2) const
 Get the data window of an image. More...
 
const UT_DimRectgetDataWindow () const
 Return the data window for the image. More...
 
bool hasDataWindow () const
 Returns true if the image has a data window. More...
 
void setBackgroundColor (fpreal col[4])
 
void getBackgroundColor (fpreal col[4]) const
 
void setBackgroundStreak (bool streak)
 
bool getBackgroundStreak () const
 
void setDeepStat (const img_DeepStatPtr &deep)
 Set how deep samples are interpolated. More...
 
const img_DeepStatPtrgetDeepStat () const
 Set how deep samples are interpolated. More...
 
int64 bytesPerPlaneScan (const IMG_Plane &pi) const
 
int64 bytesPerPlaneScan (int i) const
 
int planeOffset (const IMG_Plane &pi) const
 
int planeOffset (int i) const
 

Static Public Member Functions

static const char * getColorModel (IMG_ColorModel cm)
 
static const char * getDataType (IMG_DataType dt)
 

Protected Member Functions

void recomputeOffsets ()
 

Friends

class IMG_Plane
 
IMG_PlaneaddPlane (const char *name, IMG_DataType d, IMG_ColorModel cm, const char *c0name=0, const char *c1name=0, const char *c2name=0, const char *c3name=0)
 Add a plane to an image file. Add a plane to the image file. This is only used when writing files. Plane names must be unique. To write a file, at least one plane must be present. More...
 
IMG_PlaneaddDefaultPlane ()
 Add a default 8bit, RGBA plane to the image. More...
 

Detailed Description

Contains the details of a specific image file, used by IMG_File. This class contains all the high-level details needed to save an image file, or query a loaded image file's statistics. It contains such data as the resolution, pixel aspect ratios, data formats and image planes. The set() methods are used when creating a new IMG_Stat for writing an image file, while the get() methods are generally used when reading.

Examples:
IMG/IMG_Sample.C, and IMG/IMG_Sample.h.

Definition at line 40 of file IMG_Stat.h.

Member Typedef Documentation

Definition at line 43 of file IMG_Stat.h.

Constructor & Destructor Documentation

IMG_Stat::IMG_Stat ( )
IMG_Stat::IMG_Stat ( unsigned  xres,
unsigned  yres 
)

Sets up the resolution of the image. addPlane() or addDefaultPlane() must be called to fill out the

IMG_Stat::IMG_Stat ( unsigned  xres,
unsigned  yres,
IMG_DataType  dt,
IMG_ColorModel  cm 
)

sets up a single image plane format, without requiring addPlane(). Don't use this for deep raster images.

IMG_Stat::~IMG_Stat ( )
IMG_Stat::IMG_Stat ( const IMG_Stat s)
inline

Definition at line 58 of file IMG_Stat.h.

Member Function Documentation

IMG_Plane* IMG_Stat::addDefaultPlane ( )
inline

Add a default 8bit, RGBA plane to the image.

Examples:
IMG/IMG_Sample.C.

Definition at line 143 of file IMG_Stat.h.

void IMG_Stat::addEnvMapPlanes ( IMG_DataType  dt,
IMG_ColorModel  cm 
)

Adds 6 planes named Left, Right, Top, Bottom, Front and Back, all using the same image format.

IMG_Plane* IMG_Stat::addPlane ( const char *  name,
IMG_DataType  d,
IMG_ColorModel  cm,
const char *  c0name = 0,
const char *  c1name = 0,
const char *  c2name = 0,
const char *  c3name = 0 
)

Add a plane to an image file. Add a plane to the image file. This is only used when writing files. Plane names must be unique. To write a file, at least one plane must be present.

int64 IMG_Stat::bytesPerImage ( ) const

Returns the total number of bytes for the entire image. Returns -1 for deep images, since the size is dependent on sample count.

int64 IMG_Stat::bytesPerPixel ( ) const

Returns the number of bytes for a single pixel made up of all planes.

int64 IMG_Stat::bytesPerPlaneScan ( const IMG_Plane pi) const

Returns the number bytes for a single scanline. Returns -1 for deep images, since the size is dependent on sample count.

int64 IMG_Stat::bytesPerPlaneScan ( int  i) const

Returns the number bytes for a single scanline. Returns -1 for deep images, since the size is dependent on sample count.

int64 IMG_Stat::bytesPerScanline ( ) const

Returns the total number of bytes for a single scanline. Returns -1 for deep images, since the size is dependent on sample count.

Examples:
IMG/IMG_Sample.C.
void IMG_Stat::clearDataWindow ( )

Manipulate the data window of an image. The data window is constant across all planes. It may be smaller than the actual resolution (crop region) or larger. The data window is inclusive in that x2 and y2 are part of the region. You can also use the UT_DimRect versions for easier manipulations of the area. Image data is only defined for the area contained by the data window. By default, it is (0,0) - (xres-1, yres-1) (the entire image).

void IMG_Stat::copy ( const IMG_Stat src)
fpreal IMG_Stat::getAspectRatio ( ) const
inline

Pixel aspect ratio of the file (X/Y). Square pixels are 1.0 (default).

Definition at line 99 of file IMG_Stat.h.

void IMG_Stat::getBackgroundColor ( fpreal  col[4]) const

The image data outside the data window can be represented one of two ways: with a constant color, or by streaking the edges of the window.

bool IMG_Stat::getBackgroundStreak ( ) const
inline

The image data outside the data window can be represented one of two ways: with a constant color, or by streaking the edges of the window.

Definition at line 213 of file IMG_Stat.h.

static const char* IMG_Stat::getColorModel ( IMG_ColorModel  cm)
static
int64 IMG_Stat::getComponentCount ( ) const

Returns the total number of components across all planes.

int IMG_Stat::getDataHeight ( ) const

This returns the height of the image. If no data window is present, then this is Yres. If a data window is present, then this is the height of the data window.

static const char* IMG_Stat::getDataType ( IMG_DataType  dt)
static
int IMG_Stat::getDataWidth ( ) const

This returns the width of the image. If no data window is present, then this is Xres. If a data window is present, then this is the width of the data window.

void IMG_Stat::getDataWindow ( UT_DimRect r) const

Get the data window of an image.

void IMG_Stat::getDataWindow ( int x1,
int y1,
int x2,
int y2 
) const

Get the data window of an image.

const UT_DimRect& IMG_Stat::getDataWindow ( ) const
inline

Return the data window for the image.

Definition at line 200 of file IMG_Stat.h.

int64 IMG_Stat::getDeepPixelComponentCount ( ) const

Returns the number of components for the deep pixel image. This excludes any pseudo-planes, such as "Depth-Complexity".

const img_DeepStatPtr& IMG_Stat::getDeepStat ( ) const
inline

Set how deep samples are interpolated.

Definition at line 253 of file IMG_Stat.h.

const UT_String& IMG_Stat::getFilename ( ) const
inline

filename of the opened file. Files attached to streams may not have a filename.

Definition at line 107 of file IMG_Stat.h.

fpreal IMG_Stat::getFPS ( ) const
inline
Deprecated:
the FPS for frame playback.

Definition at line 233 of file IMG_Stat.h.

IMG_ImageType IMG_Stat::getImageType ( ) const
inline

Read/write image a specific mode. If the format does not support it, or the image being read is not of that type, IMG_File::open or IMG_File::create calls will fail. The default value is IMG_TYPE_2D.

Definition at line 76 of file IMG_Stat.h.

int64 IMG_Stat::getMemoryUsage ( bool  inclusive) const
int IMG_Stat::getNumFrames ( ) const
inline
Deprecated:
the number of frames in the file. Mostly for movie formats.

Definition at line 227 of file IMG_Stat.h.

int IMG_Stat::getNumPlanes ( ) const

Returns the number of image planes in the image a plane contains the actual structure of the image data. An image needs at least one. Deep rasters can have multiple planes.

IMG_Plane* IMG_Stat::getPlane ( int  i = 0) const

Get an image plane by index.

Examples:
IMG/IMG_Sample.C.
int IMG_Stat::getPlaneIndex ( const char *  name) const

Returns the index of the plane with 'name' Returns the index of the plane with name 'name', or -1 if not found.

IMG_Plane* IMG_Stat::getPlaneName ( const char *  name) const

Get an image plane by name Returns the plane with name 'name', or NULL if no matching plane is found.

int64 IMG_Stat::getRenderMemory ( ) const
inline

If the image file has a recorded render memory, this returns the render memory, else it returns 0.

Definition at line 245 of file IMG_Stat.h.

fpreal IMG_Stat::getRenderTime ( ) const
inline

If the image file has a recorded render time, this returns the render time, else it returns -1.

Definition at line 239 of file IMG_Stat.h.

unsigned IMG_Stat::getXres ( ) const
inline

Returns the resolution of the image to be written or the one that was read.

See Also
getDataWidth
getDataHeight
Examples:
IMG/IMG_Sample.C.

Definition at line 92 of file IMG_Stat.h.

unsigned IMG_Stat::getYres ( ) const
inline

Sets the resolution for the image, if not specified by the constructor.

Examples:
IMG/IMG_Sample.C.

Definition at line 93 of file IMG_Stat.h.

bool IMG_Stat::hasDataWindow ( ) const

Returns true if the image has a data window.

bool IMG_Stat::isEnvMap ( ) const
inline

isEnvMap() will return true, only if the image is an environment map.

Definition at line 152 of file IMG_Stat.h.

IMG_Stat& IMG_Stat::operator= ( const IMG_Stat s)
inline

Definition at line 62 of file IMG_Stat.h.

int IMG_Stat::planeOffset ( const IMG_Plane pi) const

For 2D images, returns the offset into the data for a plane in a given scanline. Plane data is arranged consecutively by scanline. For deep images, returns the offset into a pixel sample for a given plane's data. Planes are interleaved by a pixel sample.

int IMG_Stat::planeOffset ( int  i) const

For 2D images, returns the offset into the data for a plane in a given scanline. Plane data is arranged consecutively by scanline. For deep images, returns the offset into a pixel sample for a given plane's data. Planes are interleaved by a pixel sample.

void IMG_Stat::recomputeOffsets ( )
protected
void IMG_Stat::removeAllPlanes ( )

Remove all planes from the stat. Used only for writing files.

void IMG_Stat::removePlane ( int  pindex)

Remove a plane by index from the stat. Used only for writing files.

void IMG_Stat::removePlane ( const char *  name)

Remove a plane by index from the stat. Used only for writing files.

void IMG_Stat::reorderPlane ( IMG_Plane plane,
int  beforeindex 
)

Alters the order of planes in the stat.

void IMG_Stat::setAspectRatio ( fpreal  aspect)
inline

Pixel aspect ratio of the file (X/Y). Square pixels are 1.0 (default).

Definition at line 98 of file IMG_Stat.h.

void IMG_Stat::setBackgroundColor ( fpreal  col[4])

The image data outside the data window can be represented one of two ways: with a constant color, or by streaking the edges of the window.

void IMG_Stat::setBackgroundStreak ( bool  streak)
inline

The image data outside the data window can be represented one of two ways: with a constant color, or by streaking the edges of the window.

Definition at line 211 of file IMG_Stat.h.

void IMG_Stat::setColorSpace ( PXL_ColorSpace  cs,
fpreal  gamma = 0.0 
)

Sets the color space for all planes. gamma is only needed for the PXL_CS_CUSTOM_GAMMA space.

void IMG_Stat::setColorSpaceForUnknownPlanes ( PXL_ColorSpace  cs,
fpreal  gamma = 0.0 
)

Set the color space on planes with an unknown color space to 'cs'. gamma is only needed for the PXL_CS_CUSTOM_GAMMA space.

void IMG_Stat::setDataWindow ( const UT_DimRect win)

Manipulate the data window of an image. The data window is constant across all planes. It may be smaller than the actual resolution (crop region) or larger. The data window is inclusive in that x2 and y2 are part of the region. You can also use the UT_DimRect versions for easier manipulations of the area. Image data is only defined for the area contained by the data window. By default, it is (0,0) - (xres-1, yres-1) (the entire image).

void IMG_Stat::setDataWindow ( int  x1,
int  y1,
int  x2,
int  y2 
)

Manipulate the data window of an image. The data window is constant across all planes. It may be smaller than the actual resolution (crop region) or larger. The data window is inclusive in that x2 and y2 are part of the region. You can also use the UT_DimRect versions for easier manipulations of the area. Image data is only defined for the area contained by the data window. By default, it is (0,0) - (xres-1, yres-1) (the entire image).

void IMG_Stat::setDeepStat ( const img_DeepStatPtr deep)
inline

Set how deep samples are interpolated.

Definition at line 251 of file IMG_Stat.h.

bool IMG_Stat::setEnvMap ( )

Sets the environment flag, if the image planes can be treated as an environment map.

Returns
True if setting to the environment map was successful, false otherwise.
void IMG_Stat::setFilename ( const char *  name)
inline

filename of the opened file. Files attached to streams may not have a filename.

Definition at line 106 of file IMG_Stat.h.

void IMG_Stat::setFPS ( fpreal  fps)
inline
Deprecated:
the FPS for frame playback.

Definition at line 235 of file IMG_Stat.h.

void IMG_Stat::setImageType ( IMG_ImageType  it)

Read/write image a specific mode. If the format does not support it, or the image being read is not of that type, IMG_File::open or IMG_File::create calls will fail. The default value is IMG_TYPE_2D.

void IMG_Stat::setNumFrames ( int  nf)
inline
Deprecated:
the number of frames in the file. Mostly for movie formats.

Definition at line 230 of file IMG_Stat.h.

void IMG_Stat::setRenderMemory ( int64  mem)
inline

Sets the render time from the image file.

Definition at line 247 of file IMG_Stat.h.

void IMG_Stat::setRenderTime ( fpreal  t)
inline

Sets the render time from the image file.

Definition at line 241 of file IMG_Stat.h.

void IMG_Stat::setResolution ( unsigned  xres,
unsigned  yres 
)
inline

Sets the resolution for the image, if not specified by the constructor.

Examples:
IMG/IMG_Sample.C.

Definition at line 81 of file IMG_Stat.h.

void IMG_Stat::swapPlaneOrder ( int  plane_a,
int  plane_b 
)

Swap two planes

void IMG_Stat::swapPlaneOrder ( const IMG_Plane p,
int  plane_b 
)
inline

Swap two planes

Definition at line 178 of file IMG_Stat.h.

Friends And Related Function Documentation

friend class IMG_Plane
friend

Definition at line 308 of file IMG_Stat.h.


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