- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files
- Directories
- Examples

- Class List
- Class Hierarchy
- Class Members

Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Friends

# Image Class Reference

This reference page is linked to from the following overview topics: Textures, Sampling Texture Values, Images, Stamps and Stencils.

Search for all occurrences

## Detailed Description

This is the base image type defining the interface to images.

There are three differend kinds of images;

- Physically contiguous
- Striped
- Tiled/Virtual/Versioned

The first kind is the fastest, but least memory efficient. If the system is not able to allocate the required memory in one piece, a striped image will be created. A striped image consists of several stripes of 1 or more rows of pixels.

The third type of image is the most versatile -- It is stored as 128 pixel square tiles -- tiles are copy-on-write, versioned, and have their own virtual memory system optimized for images. Texture layers are typically stored in this third type of image so that paint operations on them are easily undoable.

Note:
  In Mudbox (starting in Version 2012) Mudbox images are lower left origin. This in vertically flipped compared to QImages which are upper left origin. This was done so that GL textures and images have the same orientation, eliminating the need to perform a vertical flip when loading and unloading textures from the GPU.

Examples:

  ImageIOHandlerRAW/ImageIOHandlerRAW.cpp, and ImageIOHandlerRAW/ImageIOHandlerRAW.h.

Definition at line 1504 of file image.h.

`#include <image.h>`

Inheritance diagram for Image:
[legend]

List of all members.

## Public Types
enum | ImageType { Type_Invalid = 0, Type_Memory, Type_Virtual }
| used to identify what type of image any particular instance is. More...
enum | Format { e8integer = 0, e16integer, e32integer, e16float, e32float, e16depth, e24depth, e32depth, eUnknown, eInvalid }
| Image channel datatype type. More...
## Public Member Functions
virtual | ~Image (void)
void | UnitTest (int iterations)
| cause the image storage mechanisms to be tested randomly for the specified number of iterations.
virtual bool | isAllocated () const
ImageType | getType () const
| return the image type.
const ImageDescriptor & | getDescriptor () const
| get the full descriptor for the image
void | setProxyDownsampleTo8Bit (bool downsampleTo8Bit=true)
| The default when generating proxys is to downsample them to 8 bit/channel this can make them significantly smaller.
bool | getProxyDownsampleTo8Bit () const
void | clearProxyImages ()
| clear and deallocate any proxy images.
void | SetProxyInterruptFunction (ProxyInterruptFunction fcnPtr=0)
| When generating proxy images, periodically, the interrupt function will be polled.
unsigned char | getProxyLevel () const
| get the Proxy level of the image -- 0 = no proxying.
bool | setProxyLevel (unsigned char newLevel)
| set the current proxy level
Image * | getProxyImage ()
| get the proxy image.
int | xSize () const
| Get the x size of the image.
int | ySize () const
| Get the y size of the image.
int | cSize () const
| Get the channel count of the image.
int | curWidth () const
| get the width of the current proxy level of the image
int | curHeight () const
| get the height of the current proxy level of the image
ImageDescriptor::MemoryChannelOrder | channelOrder () const
| Get the channel ordering of the image.
const ImgTile & | getBounds () const
| returns the bounds of the image -- the origin of this rect may not be at 0,0
void | getFillColor (void *fillPixel, const PixelDescriptor *pd=0) const
| Reads the fill color into the provided buffer, in the specified format -- if no format is provided, it uses the pixel format of this image.
void | setFillColor (const void *fillPixel, const PixelDescriptor *pd=0)
| Sets the fill color into the provided buffer, in the specified format -- if no format is provided, it uses the pixel format of this image.
void | getTile (int x, int y, int nx, int ny, void *data, const PixelDescriptor *pd=0)
| Reads a rectangular region of pixels from the image into a buffer.
void | getSubTile (int x, int y, int nx, int ny, void *data, int dx, int dy, int dnx, int dny, const PixelDescriptor *pd=0)
| Reads a rectangular region of pixels from the image into a buffer.
void | getTile (const ImgTile &srcTile, void *data, const PixelDescriptor *pd=0)
| Reads a rectangular region of pixels from the image into a buffer.
virtual void | getSubTile (const ImgTile &srcTile, void *data, const ImgTile &targetBounds, const PixelDescriptor *pd=0)
| Reads a rectangular region of pixels from the image into a buffer.
void | setTile (int x, int y, int nx, int ny, void *data, const PixelDescriptor *pd=0)
| Writes a rectangular region of pixels to the image from a buffer.
void | setSubTile (int x, int y, int nx, int ny, const void *data, int dx, int dy, int dnx, int dny, const PixelDescriptor *pd=0)
| Writes a rectangular region of pixels from the image into a buffer.
void | setTile (const ImgTile &dstTile, const void *data, const PixelDescriptor *pd=0)
| Writes a rectangular region of pixels to the image from a buffer.
virtual void | setSubTile (const ImgTile &dstTile, const void *data, const ImgTile &sourceBounds, const PixelDescriptor *pd=0)
| Writes a rectangular region of pixels from the image into a buffer.
void | copyTile (int x, int y, int nx, int ny, Image &fromImg, int ox, int oy)
| Copies a rectangular region of pixels from a source image to this image.
virtual void | copyTile (const ImgTile &dstTile, Image &fromImg, int ox, int oy)
| Copies a rectangular region of pixels from a source image to this image.
virtual void | copyAll (Image &fromImg)
| Copies all of the pixels from a source image to this image.
virtual void | Clear ()
| Clear all the pixels of the image to 0 in all channels.
void | fillTile (int x, int y, int nx, int ny, void *pixelData, const PixelDescriptor *pd=0, const ImgTile *maskTile=0)
| Fills a rectangular region of pixels in the image with a constant color.
void | fillTile (const ImgTile &dstTile, const void *pixelData, const PixelDescriptor *pd, const ImgTile *maskTile)
| Fills a rectangular region of pixels in the image with a constant color.
virtual void | fillTile (const ImgTile &dstTile, const void *pixelData, const PixelDescriptor *pd=0)
| Fills a rectangular region of pixels in the image with a constant color.
virtual void | getPageSize (int &nx, int &ny)
| Returns the size of an image page.
ImgPageIterator * | getPageIterator (int x, int y, int nx, int ny)
| Returns a tile iterator that will iterate over the pages of this image in an optimal order.
virtual ImgPageIterator * | getPageIterator (const ImgTile &srcTile)
| Returns a tile iterator that will iterate over the pages of this image in an optimal order.
ImgLockPageIterator * | lockPageSet (int x, int y, int nx, int ny, ImgLockPageIterator::AccessMode mode)
| Returns a tile iterator that will iterate over the pages of this image in an optimal order.
virtual ImgLockPageIterator * | lockPageSet (const ImgTile &srcTile, ImgLockPageIterator::AccessMode mode)
| Returns a tile iterator that will iterate over the pages of this image in an optimal order.
void | CopyInverseLuminance (const Image &srcImage)
| copies 1-luminance from the source image into this image
void | CopyLuminance (const Image &srcImage)
| copies the luminance of the source image into this image
virtual QString | SupportedExtensions (bool bRGBAOnly=false, bool bRead=true, bool bDesc=false, bool bPSD=true, QString sDelimiter=";") const
| Returns the supported file extensions, separated by ';'.
virtual void | Create (unsigned int iWidth, unsigned int iHeight, unsigned int iChannelCount, Format eFormat=e8integer, bool Tiled=false, ImageDescriptor::MemoryChannelOrder eOrder=ImageDescriptor::orderRGBA)
| Create a new image.
virtual void | Load (const QString &sFileName, int iLayerIndex=0, bool tiled=false)
| Load a whole image from an external file.
virtual bool | GetPSDLayerMeta (void *pPSDFile, int iLayerIndex, QString &layerName, int &blendMode, float &opacity, bool &locked, bool &visible, bool &transLocked)
virtual bool | LoadPSDLayer (void *pPSDFile, int iLayerIndex, bool Tiled=false, bool premult=true)
| Load this image from a layer in a Photoshop file.
virtual Image * | ComputeDifferenceMask (Image *otherImg, int expansionRadius, int AARadius, bool &anyDiffs)
virtual bool | SavePSDLayerMeta (void *pPSDFile, int iLayerIndex, const QString &pLayerName, float opacity=1.0f, bool visible=true, bool locked=false, int xOff=0, int yOff=0, int blendMode=-1)
| Save this image metadata to the layer metadata in a Photoshop file.
virtual bool | SavePSDLayer (void *pPSDFile, int iLayerIndex, const QString &pLayerName, float opacity=1.0f, bool visible=true, bool locked=false, bool needs_unpremult=true, int xOff=0, int yOff=0)
| Save this image to a layer in a Photoshop file.
virtual void * | OpenPSDFile (const QString &pFileName, bool writing=false)
| Open a PSD file for reading or writing -- returns a pointer to blind data representing the open file, or NULL if it was unable to open the file.
virtual bool | GetPSDFileInfo (void *psdFile, int *width, int *height, int *numChannels, int *bitDepth, int *numLayers, int *curLayer)
| Returns the basic file scope metadata for a PSD file.
virtual bool | SetPSDFileInfo (void *psdFile, int width, int height, int numChannels, int bitDepth, int numLayers, int curLayer)
| Sets the file scope metadata for a writable PSD file.
virtual bool | ClosePSDFile (void *psdFile)
| Close a PSD file.
virtual void | Save (const QString &sFileName, bool bForce=true, Material *pMaterial=NULL, float uStart=0.0f, float vStart=0.0f, bool force_1_Channel_To_4_Channel=false)
| Save the image to an external file.
virtual unsigned int | Width (void) const
| Return the width of the image in pixels.
virtual unsigned int | Height (void) const
| Return the height of the image in pixels.
virtual Format | Format (void) const
| Return the format of the image.
virtual unsigned int | ChannelCount (void) const
| Return the number of channels in the image.
virtual unsigned int | BytesPerPixel (void) const
| Return the number of bytes used by a pixel.
unsigned int | curBytesPerPixel () const
| Return the number of bytes used by a pixel at the current proxy level.
virtual unsigned int | TotalBytes (void) const
| Return the number of bytes used by the whole image.
unsigned int | curTotalBytes (void) const
| Return the number of bytes used by the whole image (current proxy level)
virtual void | SetValueAt (unsigned int iXPos, unsigned int iYPos, unsigned int iChannel, float fValue)
| Set value for a specified texel.
virtual float | ValueAt (unsigned int iXPos, unsigned int iYPos, unsigned int iChannel) const
| Get the value at a given coordinate.
virtual float | ValueAt (float fXPos, float fYPos, unsigned int iChannel) const
| Get interpolated value at a given coordinate.
virtual void | SetColorAt (unsigned int iXPos, unsigned int iYPos, const Color &cColor)
| Set value for a specified texel.
virtual Color | ColorAt (unsigned int iXPos, unsigned int iYPos) const
| Get the value at a given coordinate.
virtual Color | ColorAt (float fXPos, float fYPos) const
| Get interpolated value at a given coordinate.
virtual QImage * | ConvertToQImage ()
| Create a QImage object from the image data for display purposes.
virtual void | ConvertFromQImage (QImage &qImg, bool tiled=false)
| Creates the image from a QImage.
virtual bool | Fragmented () const
| returns true if the image is not stored in one physically contiguous piece of CPU visible memory -- If so, you must use lockPageSet to get at portions of the image data...
virtual bool | Tiled () const
| returns true if this is a tiled and versioned image
bool | Versioned () const
| returns true if this is a tiled and versioned image
virtual bool | NewVersion ()
| checkpoint and create a new version of this image.
virtual bool | PrevVersion ()
| makes the previous version current -- used for undo returns true if it worked, false otherwise marks the proxy dirty
virtual bool | NextVersion ()
| makes the next version current -- used for redo returns true if it worked, false otherwise marks the proxy dirty
virtual int | NumVersions ()
| returns the number of versions. returns 1 for unversioned images
virtual bool | MergeOldestVersions ()
| merges the oldest two versions -- used to limit the number of items on the undo queue.
virtual bool | PurgeNewerVersions ()
| Creating a new version will implicitly purge nerer versions, but if another operation takes place that puts a new item on the undo queue, this should be called to purge newer versions of this image returns true if it worked, false otherwise.
virtual bool | PurgeAllButCurrentVersion ()
| Releases all but the current version -- used to flush the undo queue.
virtual void * | Data (int iRow=-1, bool writing=true)
| Get a pointer to the raw data of a row of the image.
virtual const void * | Data (int iRow=-1, bool writing=false) const
virtual void | DrawUVs (Material *pMaterial, float uStart=0.0f, float vStart=0.0f, bool baseLevel=true)
| Draw the uv mesh for a given material into this image -- either the base or active level.
virtual void | scaleTileBilinear_4Chan_uchar (float x, float y, float nx, float ny, unsigned int *data, int dx, int dy, int dnx, int dny, float xScale, float yScale) const
| Fast, thread safe image scaler.
virtual void | GenerateUpscaled (Image *targetImg, int factor)
| This upscales an image with good filtering (bilinear to Lanczos as needed based on the scale factor.
virtual bool | isDirty () const
| Query if the contents of this image have changed since the last call to setClean.
virtual void | setDirty ()
| Explicitly set the image state to dirty.
virtual void | setClean ()
| explicitly set the image state to clean.
virtual void | VerticalFlip ()
| vertically flip the image (make it upside down)
virtual void | AdjustImageCacheSize ()
| Causes the image cache size to adjust based on the amount of memory available.
virtual void | ConvertTo4Channel ()
| makes the image 4 channels. with the alphas 1.0.
## Static Public Member Functions
static QString | AllSupportedExtensions (bool bRGBAOnly=false, bool bRead=true, bool bDesc=false, bool bPSD=true, QString sDelimiter=";")
static ImageDescriptor::MemoryChannelOrder | optimizedChannelOrder ()
static void | ConvertPixels (void *dst, const void *src, int numPix, const PixelDescriptor &dstDesc, const PixelDescriptor *srcDesc=0)
static void | MultiplyRGBByAlpha_uc4 (unsigned char *buffer, int numPixels)
| multiply alpha into RGB for the specified number of pixels.
## Protected Member Functions
| Image (void)
void | markProxyDirty ()
virtual bool | regenerateProxy ()
bool | isProxyDirty () const
virtual bool | GenerateProxy (Image *targetImg, int level, bool DownsampleTo8Bits=true)
## Protected Attributes
unsigned char | m_FillPixel [16]
ImageDescriptor | m_Descriptor
ImageType | m_ImageType
unsigned char | m_ProxyLevel
Image * | m_pProxyImages [MAX_PROXY_LEVEL+1]
bool | m_bDownsampleProxyTo8Bit
ProxyInterruptFunction | m_pProxyIntFcn
## Friends
class | ImgPageIterator
class | ImgLockPageIterator

## Member Enumeration Documentation

enum ImageType

Search for all occurrences

used to identify what type of image any particular instance is.

Enumerator:

  Type_Invalid | Search for all occurrences
  Type_Memory | physically contiguous image or striped Search for all occurrences
  Type_Virtual | Tiled & versioned, not contiguous. Search for all occurrences

Definition at line 1515 of file image.h.

                     {
            Type_Invalid = 0,
            Type_Memory,
            Type_Virtual
        } ImageType;

enum Format

Search for all occurrences

Image channel datatype type.

Enumerator:

  e8integer | Search for all occurrences
  e16integer | Search for all occurrences
  e32integer | Search for all occurrences
  e16float | Search for all occurrences
  e32float | Search for all occurrences
  e16depth | Search for all occurrences
  e24depth | Search for all occurrences
  e32depth | Search for all occurrences
  eUnknown | Search for all occurrences
  eInvalid | Search for all occurrences

Definition at line 1522 of file image.h.

        {
            e8integer = 0,
            e16integer,
            e32integer,
            e16float,
            e32float,
            e16depth,
            e24depth,
            e32depth,
            eUnknown,
            eInvalid,
        };

## Constructor & Destructor Documentation

virtual ~Image | ( | void |  | ) | `[virtual]`

Image | ( | void |  | ) | `[protected]`

## Member Function Documentation

void markProxyDirty | ( |  | ) | `[inline, protected]`

Search for all occurrences

Definition at line 1553 of file image.h.

        {
            for (int i = 0; i < MAX_PROXY_LEVEL+1; ++i) {
                if (m_pProxyImages[i]) {
                    delete m_pProxyImages[i]; m_pProxyImages[i] = 0;
                }
            }
        }

virtual bool regenerateProxy | ( |  | ) | `[protected, virtual]`

Search for all occurrences

bool isProxyDirty | ( |  | ) | const `[inline, protected]`

Search for all occurrences

Definition at line 1563 of file image.h.

            { return (m_ProxyLevel > 0) ? (m_pProxyImages[m_ProxyLevel] == 0) : false; }

virtual bool GenerateProxy | ( | Image * | targetImg,
|  | int | level,
|  | bool | DownsampleTo8Bits = `true`
| ) |  | `[protected, virtual]`

Search for all occurrences

void UnitTest | ( | int | iterations | ) |

Search for all occurrences

cause the image storage mechanisms to be tested randomly for the specified number of iterations.

virtual bool isAllocated | ( |  | ) | const `[virtual]`

Search for all occurrences

static QString AllSupportedExtensions | ( | bool | bRGBAOnly = `false`,
|  | bool | bRead = `true`,
|  | bool | bDesc = `false`,
|  | bool | bPSD = `true`,
|  | QString | sDelimiter = `";"`
| ) |  | `[static]`

Search for all occurrences

ImageType getType | ( |  | ) | const `[inline]`

Search for all occurrences

return the image type.

Definition at line 1598 of file image.h.

    { return m_ImageType; }

const ImageDescriptor& getDescriptor | ( |  | ) | const `[inline]`

Search for all occurrences

get the full descriptor for the image

Definition at line 1601 of file image.h.

    { return m_Descriptor; }

void setProxyDownsampleTo8Bit | ( | bool | downsampleTo8Bit = `true` | ) | `[inline]`

Search for all occurrences

The default when generating proxys is to downsample them to 8 bit/channel this can make them significantly smaller.

This is not appropriate for bump or normal maps where greater precision is required. This API lets you turn off the downsampling on a per image basis

Definition at line 1608 of file image.h.

        {
            if (m_bDownsampleProxyTo8Bit != downsampleTo8Bit) {
                m_bDownsampleProxyTo8Bit = downsampleTo8Bit;
                markProxyDirty();
            }
        }

bool getProxyDownsampleTo8Bit | ( |  | ) | const `[inline]`

Search for all occurrences

Definition at line 1616 of file image.h.

    { return m_bDownsampleProxyTo8Bit; }

void clearProxyImages | ( |  | ) | `[inline]`

Search for all occurrences

clear and deallocate any proxy images.

Definition at line 1619 of file image.h.

    { markProxyDirty(); }

void SetProxyInterruptFunction | ( | ProxyInterruptFunction | fcnPtr = `0` | ) | `[inline]`

Search for all occurrences

When generating proxy images, periodically, the interrupt function will be polled.

if it returns true, the proxy generation will be interrupted. Any work done in this function should complete *very* quickly. (budget no more than 10 milliseconds)

Definition at line 1624 of file image.h.

        { m_pProxyIntFcn = fcnPtr; }

unsigned char getProxyLevel | ( |  | ) | const `[inline]`

Search for all occurrences

get the Proxy level of the image -- 0 = no proxying.

1 = 0.5x, 2 = 0.25x, 3 = 0.125x.

Note: Currently only tiled images may be proxied. Attempting to set a non 0 proxy level on any other type of image will result in an exception being thrown.

Definition at line 1635 of file image.h.

    { return m_ProxyLevel; }

bool setProxyLevel | ( | unsigned char | newLevel | ) | `[inline]`

Search for all occurrences

set the current proxy level

Definition at line 1638 of file image.h.

                                                          {
            if ( xSize()>>newLevel == 0 || ySize()>>newLevel == 0 )
                return false;
            if (newLevel > MAX_PROXY_LEVEL) newLevel = MAX_PROXY_LEVEL;
            if (newLevel != m_ProxyLevel) {
                m_ProxyLevel = newLevel;
            }

            return true;
        }

Image* getProxyImage | ( |  | ) | `[inline]`

Search for all occurrences

get the proxy image.

If the proxy level is 0, it just returns this image. If the proxy is dirty, it gets regenerated first before returning. Note -- if the interrupt function is set, and the generation of the proxy is interrupted, this will return NULL

Definition at line 1654 of file image.h.

        {
            if (m_ProxyLevel == 0) return this;

            if ( m_pProxyImages[m_ProxyLevel] ) return m_pProxyImages[m_ProxyLevel];

            bool generated = regenerateProxy();
            if (!generated && m_pProxyImages[m_ProxyLevel] != 0) {
                delete m_pProxyImages[m_ProxyLevel];
                m_pProxyImages[m_ProxyLevel] = 0;
            }
            return m_pProxyImages[m_ProxyLevel];
        }

int xSize | ( |  | ) | const `[inline]`

Search for all occurrences

Get the x size of the image.

Definition at line 1669 of file image.h.

    { return m_Descriptor.xSize(); }

int ySize | ( |  | ) | const `[inline]`

Search for all occurrences

Get the y size of the image.

Definition at line 1672 of file image.h.

    { return m_Descriptor.ySize(); }

int cSize | ( |  | ) | const `[inline]`

Search for all occurrences

Get the channel count of the image.

Definition at line 1675 of file image.h.

    { return m_Descriptor.cSize(); }

int curWidth | ( |  | ) | const `[inline]`

Search for all occurrences

get the width of the current proxy level of the image

Definition at line 1678 of file image.h.

    { return Width() >> getProxyLevel(); }

int curHeight | ( |  | ) | const `[inline]`

Search for all occurrences

get the height of the current proxy level of the image

Definition at line 1681 of file image.h.

    { return Height() >> getProxyLevel(); }

ImageDescriptor::MemoryChannelOrder channelOrder | ( |  | ) | const `[inline]`

Search for all occurrences

Get the channel ordering of the image.

Definition at line 1684 of file image.h.

    { return m_Descriptor.m_channelOrder; }

const ImgTile& getBounds | ( |  | ) | const `[inline]`

Search for all occurrences

returns the bounds of the image -- the origin of this rect may not be at 0,0

Definition at line 1687 of file image.h.

    { return m_Descriptor.getBounds(); }

void getFillColor | ( | void * | fillPixel,
|  | const PixelDescriptor * | pd = `0`
| ) |  | const

Search for all occurrences

Reads the fill color into the provided buffer, in the specified format -- if no format is provided, it uses the pixel format of this image.

Parameters:

  fillPixel | Pointer to the target where the fill color will be written
  pd | Desired pixelformat for the fill color -- if 0, it uses the pixel format of this image

void setFillColor | ( | const void * | fillPixel,
|  | const PixelDescriptor * | pd = `0`
| ) |  |

Search for all occurrences

Sets the fill color into the provided buffer, in the specified format -- if no format is provided, it uses the pixel format of this image.

Parameters:

  fillPixel | Pointer to the source where the fill color will be read from
  pd | Desired pixelformat for the fill color -- if 0, it uses the pixel format of this image

void getTile | ( | int | x,
|  | int | y,
|  | int | nx,
|  | int | ny,
|  | void * | data,
|  | const PixelDescriptor * | pd = `0`
| ) |  | `[inline]`

Search for all occurrences

Reads a rectangular region of pixels from the image into a buffer.

The buffer must be exactly the size of the region being read. If the region is outside or partly outside the bounds of the image, those areas of the target buffer will be filled with the image's FillColor

Note:
  this operation is atomic -- no other threads can write to the image while this is being performed.

Parameters:

  x | x coord of the lower left corner of the region to be read.
  y | y coord of the lower left corner of the region to be read.
  nx | width of the region to be read.
  ny | height of the region to be read.
  data | Pointer to the target buffer.
  pd | Desired pixelformat for the buffer color -- if 0, it uses the pixel format of this image

Definition at line 1733 of file image.h.

           { getTile(ImgTile(x, y, nx, ny), data, pd); }

void getSubTile | ( | int | x,
|  | int | y,
|  | int | nx,
|  | int | ny,
|  | void * | data,
|  | int | dx,
|  | int | dy,
|  | int | dnx,
|  | int | dny,
|  | const PixelDescriptor * | pd = `0`
| ) |  | `[inline]`

Search for all occurrences

Reads a rectangular region of pixels from the image into a buffer.

The buffer may be be different than the size of the region being read. If the region is outside or partly outside the bounds of the image, those areas of the target buffer will be filled with the image's FillColor

Note:
  this operation is atomic -- no other threads can write to the image while this is being performed.

Parameters:

  x | x coord of the lower left corner of the region to be read.
  y | y coord of the lower left corner of the region to be read.
  nx | width of the region to be read.
  ny | height of the region to be read.
  data | Pointer to the target buffer.
  dx | x coord of the lower left corner of the buffer (in image coords).
  dy | y coord of the lower left corner of the buffer (in image coords).
  dnx | width of the target buffer.
  dny | height of the target buffer.
  pd | Desired pixelformat for the buffer color -- if 0, it uses the pixel format of this image

Definition at line 1762 of file image.h.

           { getSubTile(ImgTile(x, y, nx, ny), data, ImgTile(dx, dy, dnx, dny), pd); }

void getTile | ( | const ImgTile & | srcTile,
|  | void * | data,
|  | const PixelDescriptor * | pd = `0`
| ) |  | `[inline]`

Search for all occurrences

Reads a rectangular region of pixels from the image into a buffer.

The buffer must be exactly the size of the region being read. If the region is outside or partly outside the bounds of the image, those areas of the target buffer will be filled with the image's FillColor

Note:
  this operation is atomic -- no other threads can write to the image while this is being performed.

Parameters:

  srcTile | the rectangle of the image to be read into the buffer.
  data | Pointer to the target buffer.
  pd | Desired pixelformat for the buffer color -- if 0, it uses the pixel format of this image

Definition at line 1784 of file image.h.

           { getSubTile(srcTile, data, srcTile, pd); }

virtual void getSubTile | ( | const ImgTile & | srcTile,
|  | void * | data,
|  | const ImgTile & | targetBounds,
|  | const PixelDescriptor * | pd = `0`
| ) |  | `[virtual]`

Search for all occurrences

Reads a rectangular region of pixels from the image into a buffer.

The buffer may be be different than the size of the region being read. If the region is outside or partly outside the bounds of the image, those areas of the target buffer will be filled with the image's FillColor

Note:
  this operation is atomic -- no other threads can write to the image while this is being performed.
  this is the only member of the getTile family that must be provided by subclasses of this Image class.

Parameters:

  srcTile | The rectangle of the image to be read into the buffer.
  data | Pointer to the target buffer.
  targetBounds | bounds of the target buffer (in image coords).
  pd | Desired pixelformat for the buffer color -- if 0, it uses the pixel format of this image

void setTile | ( | int | x,
|  | int | y,
|  | int | nx,
|  | int | ny,
|  | void * | data,
|  | const PixelDescriptor * | pd = `0`
| ) |  | `[inline]`

Search for all occurrences

Writes a rectangular region of pixels to the image from a buffer.

The buffer must be exactly the size of the region being written. If the image has dynamic bounds, the image bounds will be expanded as required so that the entire operation can complete. Otherwise the region that is outside the bounds of the image will not be written.

Note:
  this operation is atomic -- no other threads can read or write to the image while this is being performed.

Parameters:

  x | x coord of the lower left corner of the region to be written.
  y | y coord of the lower left corner of the region to be written.
  nx | width of the region to be written.
  ny | height of the region to be written.
  data | Pointer to the source buffer.
  pd | Pixelformat for the buffer color -- if 0, it uses the pixel format of this image

Examples:
  ImageIOHandlerRAW/ImageIOHandlerRAW.cpp.

Definition at line 1833 of file image.h.

           { setTile(ImgTile(x, y, nx, ny), data, pd); }

void setSubTile | ( | int | x,
|  | int | y,
|  | int | nx,
|  | int | ny,
|  | const void * | data,
|  | int | dx,
|  | int | dy,
|  | int | dnx,
|  | int | dny,
|  | const PixelDescriptor * | pd = `0`
| ) |  | `[inline]`

Search for all occurrences

Writes a rectangular region of pixels from the image into a buffer.

The buffer may be be different than the size of the region being written. If the image has dynamic bounds, the image bounds will be expanded as required so that the entire operation can complete. Otherwise the region that is outside the bounds of the image will not be written.

Note:
  this operation is atomic -- no other threads can read or write to the image while this is being performed.

Parameters:

  x | x coord of the lower left corner of the region to be written.
  y | y coord of the lower left corner of the region to be written.
  nx | width of the region to be written.
  ny | height of the region to be written.
  data | Pointer to the source buffer.
  dx | x coord of the lower left corner of the buffer (in image coords).
  dy | y coord of the lower left corner of the buffer (in image coords).
  dnx | width of the target buffer.
  dny | height of the target buffer.
  pd | Pixelformat for the buffer color -- if 0, it uses the pixel format of this image

Definition at line 1864 of file image.h.

           { setSubTile(ImgTile(x, y, nx, ny), data, ImgTile(dx, dy, dnx, dny), pd); }

void setTile | ( | const ImgTile & | dstTile,
|  | const void * | data,
|  | const PixelDescriptor * | pd = `0`
| ) |  | `[inline]`

Search for all occurrences

Writes a rectangular region of pixels to the image from a buffer.

The buffer must be exactly the size of the region being written. If the image has dynamic bounds, the image bounds will be expanded as required so that the entire operation can complete. Otherwise the region that is outside the bounds of the image will not be written.

Note:
  this operation is atomic -- no other threads can read or write to the image while this is being performed.

Parameters:

  dstTile | rectangle of the image to be written.
  data | Pointer to the source buffer.
  pd | Desired pixelformat for the buffer color -- if 0, it uses the pixel format of this image

Definition at line 1885 of file image.h.

           { setSubTile(dstTile, data, dstTile, pd); }

virtual void setSubTile | ( | const ImgTile & | dstTile,
|  | const void * | data,
|  | const ImgTile & | sourceBounds,
|  | const PixelDescriptor * | pd = `0`
| ) |  | `[virtual]`

Search for all occurrences

Writes a rectangular region of pixels from the image into a buffer.

The buffer may be be different than the size of the region being written. If the image has dynamic bounds, the image bounds will be expanded as required so that the entire operation can complete. Otherwise the region that is outside the bounds of the image will not be written.

Note:
  this operation is atomic -- no other threads can read or write to the image while this is being performed.
  this is the only member of the setTile family that must be provided by subclasses of this Image class.

Parameters:

  dstTile | rectangle of the image to be written.
  data | Pointer to the source buffer.
  sourceBounds | bounds of the source buffer (in image coords).
  pd | Pixelformat for the buffer color -- if 0, it uses the pixel format of this image

void copyTile | ( | int | x,
|  | int | y,
|  | int | nx,
|  | int | ny,
|  | Image & | fromImg,
|  | int | ox,
|  | int | oy
| ) |  | `[inline]`

Search for all occurrences

Copies a rectangular region of pixels from a source image to this image.

If the image has dynamic bounds, the image bounds will be expanded as required so that the entire operation can complete. Otherwise the region that is outside the bounds of the image will not be written. Regions outsude the bounds of the source image will be filled with the FillColor of the source image.

Note:
  this operation is atomic -- no other threads can read or write to the target image while this is being performed, and no other threads can write to the source image.
  Format conversions are automatically performed as required.

Parameters:

  x | x target coord of the lower left corner of the region to be copied.
  y | y target coord of the lower left corner of the region to be copied.
  nx | width of the region to be copied.
  ny | height of the region to be copied.
  fromImg | The source image.
  ox | x source coord of the lower left corner of the region to be copied (in souce image coordinates).
  oy | y source coord of the lower left corner of the region to be copied (in souce image coordinates). .

Definition at line 1937 of file image.h.

           { copyTile(ImgTile(x, y, nx, ny), fromImg, ox, oy); }

virtual void copyTile | ( | const ImgTile & | dstTile,
|  | Image & | fromImg,
|  | int | ox,
|  | int | oy
| ) |  | `[virtual]`

Search for all occurrences

Copies a rectangular region of pixels from a source image to this image.

If the image has dynamic bounds, the image bounds will be expanded as required so that the entire operation can complete. Otherwise the region that is outside the bounds of the image will not be written. Regions outsude the bounds of the source image will be filled with the FillColor of the source image.

Note:
  this operation is atomic -- no other threads can read or write to the target image while this is being performed, and no other threads can write to the source image.
  Format conversions are automatically performed as required.
  this is the only member of the copyTile family that must be provided by subclasses of this Image class.

Parameters:

  dstTile | target rectangle to be copied.
  fromImage | The source image.
  ox | x source coord of the lower left corner of the region to be copied (in souce image coordinates).
  oy | y source coord of the lower left corner of the region to be copied (in souce image coordinates). .

virtual void copyAll | ( | Image & | fromImg | ) | `[inline, virtual]`

Search for all occurrences

Copies all of the pixels from a source image to this image.

If the image has dynamic bounds, the image bounds will be expanded as required so that the entire operation can complete. Otherwise the region that is outside the bounds of the image will not be written. Regions outsude the bounds of the source image will be filled with the FillColor of the source image.

Note:
  this operation is atomic -- no other threads can read or write to the target image while this is being performed, and no other threads can write to the source image.
  Format conversions are automatically performed as required.

Parameters:

  fromImage | The source image.

Definition at line 1981 of file image.h.

        {
            ImgTile srcBounds(fromImg.getBounds());
            copyTile(srcBounds, fromImg, srcBounds.x, srcBounds.y);
        }

virtual void Clear | ( |  | ) | `[virtual]`

Search for all occurrences

Clear all the pixels of the image to 0 in all channels.

void fillTile | ( | int | x,
|  | int | y,
|  | int | nx,
|  | int | ny,
|  | void * | pixelData,
|  | const PixelDescriptor * | pd = `0`,
|  | const ImgTile * | maskTile = `0`
| ) |  | `[inline]`

Search for all occurrences

Fills a rectangular region of pixels in the image with a constant color.

Optionally a rectangular region can be "masked off" and not filled. If the image has dynamic bounds, the image bounds will be expanded as required so that the entire operation can complete. Otherwise the region that is outside the bounds of the image will not be written.

Note:
  this operation is atomic -- no other threads can read or write to the image while this is being performed.

Parameters:

  x | x target coord of the lower left corner of the region to be filled.
  y | y target coord of the lower left corner of the region to be filled.
  nx | width of the region to be filled.
  ny | height of the region to be filled.
  pixelData | Pointer to the source pixel data. If 0, all 0s are used instead.
  pd | Pixelformat for the source pixel color -- if 0, it uses the pixel format of this image
  masktTile | an optional pointer to a mask rectangle. If present, the contents of this rectangle of the image will remain unchanged by this operation.

Definition at line 2015 of file image.h.

        { fillTile(ImgTile(x, y, nx, ny), pixelData, pd, maskTile); }

void fillTile | ( | const ImgTile & | dstTile,
|  | const void * | pixelData,
|  | const PixelDescriptor * | pd,
|  | const ImgTile * | maskTile
| ) |  |

Search for all occurrences

Fills a rectangular region of pixels in the image with a constant color.

Optionally a rectangular region can be "masked off" and not filled. If the image has dynamic bounds, the image bounds will be expanded as required so that the entire operation can complete. Otherwise the region that is outside the bounds of the image will not be written.

Note:
  this operation is atomic -- no other threads can read or write to the image while this is being performed.

Parameters:

  dstTile | Rectangle of the image to be written.
  pixelData | Pointer to the source pixel data. If 0, all 0s are used instead.
  pd | Pixelformat for the source pixel color -- if 0, it uses the pixel format of this image
  masktTile | an optional pointer to a mask rectangle. If present, the contents of this rectangle of the image will remain unchanged by this operation.

virtual void fillTile | ( | const ImgTile & | dstTile,
|  | const void * | pixelData,
|  | const PixelDescriptor * | pd = `0`
| ) |  | `[virtual]`

Search for all occurrences

Fills a rectangular region of pixels in the image with a constant color.

Optionally a rectangular region can be "masked off" and not filled. If the image has dynamic bounds, the image bounds will be expanded as required so that the entire operation can complete. Otherwise the region that is outside the bounds of the image will not be written.

Note:
  this operation is atomic -- no other threads can read or write to the image while this is being performed.
  this is the only member of the fillTile family that must be provided by subclasses of this Image class.

Parameters:

  dstTile | Rectangle of the image to be written.
  pixelData | Pointer to the source pixel data. If 0, all 0s are used instead.
  pd | Pixelformat for the source pixel color -- if 0, it uses the pixel format of this image

virtual void getPageSize | ( | int & | nx,
|  | int & | ny
| ) |  | `[virtual]`

Search for all occurrences

Returns the size of an image page.

Some images may be carved up into 1 or more image pages -- this method returns the page size for this image. MemoryImages will be a single page that is the size of the entire images. virtualImages will have have a page size of 128 x 128 pixels.

Parameters:

  nx | width of a page
  ny | height of a page

ImgPageIterator* getPageIterator | ( | int | x,
|  | int | y,
|  | int | nx,
|  | int | ny
| ) |  | `[inline]`

Search for all occurrences

Returns a tile iterator that will iterate over the pages of this image in an optimal order.

For MemoryImages and other non paged images this iterator will only produce one tile.

Parameters:

  x | x origin of the region to iterate over
  y | yorigin of the region to iterate over
  nx | width of the region to iterate over
  ny | height of the region to iterate over

Returns:
  the tileIterator

Note:
  this function allocates the iterator -- when the caller is finished with it, the caller must delete it.

Definition at line 2092 of file image.h.

        { return getPageIterator(ImgTile(x, y, nx, ny)); }

virtual ImgPageIterator* getPageIterator | ( | const ImgTile & | srcTile | ) | `[virtual]`

Search for all occurrences

Returns a tile iterator that will iterate over the pages of this image in an optimal order.

For MemoryImages and other non paged images this iterator will only produce one tile.

Parameters:

  srcTile | the region to iterate over

Returns:
  the tileIterator

Note:
  this function allocates the iterator -- when the caller is finished with it, the caller must delete it.

ImgLockPageIterator* lockPageSet | ( | int | x,
|  | int | y,
|  | int | nx,
|  | int | ny,
|  | ImgLockPageIterator::AccessMode | mode
| ) |  | `[inline]`

Search for all occurrences

Returns a tile iterator that will iterate over the pages of this image in an optimal order.

These pages are locked at the start of this operation, and unlocked 1 by one as they are iterated over. For MemoryImages and other non paged images this iterator will only produce one tile.

Parameters:

  x | x origin of the region to lock and iterate over
  y | yorigin of the region to lock and iterate over
  nx | width of the region to lock and iterate over
  ny | height of the region to lock and iterate over
  mode | the access mode -- read only, read/write or write only.

Returns:
  the tileIterator

Note:
  this function allocates the iterator -- when the caller is finished with it, the caller must delete it.

Definition at line 2123 of file image.h.

        { return lockPageSet(ImgTile(x, y, nx, ny), mode); }

virtual ImgLockPageIterator* lockPageSet | ( | const ImgTile & | srcTile,
|  | ImgLockPageIterator::AccessMode | mode
| ) |  | `[virtual]`

Search for all occurrences

Returns a tile iterator that will iterate over the pages of this image in an optimal order.

These pages are locked at the start of this operation, and unlocked 1 by one as they are iterated over. For MemoryImages and other non paged images this iterator will only produce one tile.

Parameters:

  srcTile | the region to lock and iterate over
  mode | the access mode -- read only, read/write or write only.

Returns:
  the tileIterator

Note:
  this function allocates the iterator -- when the caller is finished with it, the caller must delete it.

static ImageDescriptor::MemoryChannelOrder optimizedChannelOrder | ( |  | ) | `[static]`

Search for all occurrences

static void ConvertPixels | ( | void * | dst,
|  | const void * | src,
|  | int | numPix,
|  | const PixelDescriptor & | dstDesc,
|  | const PixelDescriptor * | srcDesc = `0`
| ) |  | `[static]`

Search for all occurrences

void CopyInverseLuminance | ( | const Image & | srcImage | ) |

Search for all occurrences

copies 1-luminance from the source image into this image

void CopyLuminance | ( | const Image & | srcImage | ) |

Search for all occurrences

copies the luminance of the source image into this image

virtual QString SupportedExtensions | ( | bool | bRGBAOnly = `false`,
|  | bool | bRead = `true`,
|  | bool | bDesc = `false`,
|  | bool | bPSD = `true`,
|  | QString | sDelimiter = `";"`
| ) |  | const `[virtual]`

Search for all occurrences

Returns the supported file extensions, separated by ';'.

Parameters:

  bRGBAOnly | true to return a list of file formats that support 4 channels. false to return a list of all supported formats. Not all returned formats may support 4 channels (like JPEG).
  bRead | true to return list of readable formats, false for writable formats. Not all readable formats may be writable and vice versa.
  bDesc | true to prepend descriptive text to each extension. i.e "JPG [8 bit, RGB]"
  bPSD | true to support PSD files...

virtual void Create | ( | unsigned int | iWidth,
|  | unsigned int | iHeight,
|  | unsigned int | iChannelCount,
|  | Format | eFormat = `e8integer`,
|  | bool | Tiled = `false`,
|  | ImageDescriptor::MemoryChannelOrder | eOrder = `ImageDescriptor::orderRGBA`
| ) |  | `[virtual]`

Search for all occurrences

Create a new image.

Data will be undefined. The Tiled argument creates a tiled versioned image. (the Data method will not work on these type of images, you must use get/set/copy tile or page locking to access them)

Examples:
  ImageIOHandlerRAW/ImageIOHandlerRAW.cpp.

virtual void Load | ( | const QString & | sFileName,
|  | int | iLayerIndex = `0`,
|  | bool | tiled = `false`
| ) |  | `[virtual]`

Search for all occurrences

Load a whole image from an external file.

The extension in the filename must be included. If the file is a PSD file, the bottom bost image layer is loaded into this image.

virtual bool GetPSDLayerMeta | ( | void * | pPSDFile,
|  | int | iLayerIndex,
|  | QString & | layerName,
|  | int & | blendMode,
|  | float & | opacity,
|  | bool & | locked,
|  | bool & | visible,
|  | bool & | transLocked
| ) |  | `[virtual]`

Search for all occurrences

virtual bool LoadPSDLayer | ( | void * | pPSDFile,
|  | int | iLayerIndex,
|  | bool | Tiled = `false`,
|  | bool | premult = `true`
| ) |  | `[virtual]`

Search for all occurrences

Load this image from a layer in a Photoshop file.

The image will be created at the bit-depth and format of the PSD file (either 8 bit int, 16 bit int, or 32 bit float), and will be the size of the PSD file (not the size of the layer, which can be smaller). The image will be tiled as specified. The pPSDFile must have been created with OpenPSDFile. 0 is the bottom layer, and they increase as you go up in the layer stack.

virtual Image* ComputeDifferenceMask | ( | Image * | otherImg,
|  | int | expansionRadius,
|  | int | AARadius,
|  | bool & | anyDiffs
| ) |  | `[virtual]`

Search for all occurrences

virtual bool SavePSDLayerMeta | ( | void * | pPSDFile,
|  | int | iLayerIndex,
|  | const QString & | pLayerName,
|  | float | opacity = `1.0f`,
|  | bool | visible = `true`,
|  | bool | locked = `false`,
|  | int | xOff = `0`,
|  | int | yOff = `0`,
|  | int | blendMode = `-1`
| ) |  | `[virtual]`

Search for all occurrences

Save this image metadata to the layer metadata in a Photoshop file.

The image must be the same size and bit-depth as the PSD file The pPSDFile must have been created with PSDOpen. 0 is the bottom layer, and they increase as you go up in the layer stack -1 for the layer index indicates that you want to save the RGB of this image into the composite image in the PSD file. In that case, the remaining parameters are ignored. All layer metadata must be set before any layer images are written

virtual bool SavePSDLayer | ( | void * | pPSDFile,
|  | int | iLayerIndex,
|  | const QString & | pLayerName,
|  | float | opacity = `1.0f`,
|  | bool | visible = `true`,
|  | bool | locked = `false`,
|  | bool | needs_unpremult = `true`,
|  | int | xOff = `0`,
|  | int | yOff = `0`
| ) |  | `[virtual]`

Search for all occurrences

Save this image to a layer in a Photoshop file.

The image must be the same size and bit-depth as the PSD file The pPSDFile must have been created with PSDOpen. 0 is the bottom layer, and they increase as you go up in the layer stack -1 for the layer index indicates that you want to save the RGB of this image into the composite image in the PSD file. In that case, the remaining parameters are ignored. The layer metata for this and all other layers must have been set before calling this function.

virtual void* OpenPSDFile | ( | const QString & | pFileName,
|  | bool | writing = `false`
| ) |  | `[virtual]`

Search for all occurrences

Open a PSD file for reading or writing -- returns a pointer to blind data representing the open file, or NULL if it was unable to open the file.

When creating a PSD file, first open it, then set the FileInfo, then save the layes from the bottom up (index 0 to n), and lastly save the composite layer (index -1.) Then close the file.

virtual bool GetPSDFileInfo | ( | void * | psdFile,
|  | int * | width,
|  | int * | height,
|  | int * | numChannels,
|  | int * | bitDepth,
|  | int * | numLayers,
|  | int * | curLayer
| ) |  | `[virtual]`

Search for all occurrences

Returns the basic file scope metadata for a PSD file.

Returns true if successful. (if any of the pointers are NULL, the informaton is not retrieved)

virtual bool SetPSDFileInfo | ( | void * | psdFile,
|  | int | width,
|  | int | height,
|  | int | numChannels,
|  | int | bitDepth,
|  | int | numLayers,
|  | int | curLayer
| ) |  | `[virtual]`

Search for all occurrences

Sets the file scope metadata for a writable PSD file.

Returns true if successful. This must be called before saving any layers.

virtual bool ClosePSDFile | ( | void * | psdFile | ) | `[virtual]`

Search for all occurrences

Close a PSD file.

virtual void Save | ( | const QString & | sFileName,
|  | bool | bForce = `true`,
|  | Material * | pMaterial = `NULL`,
|  | float | uStart = `0.0f`,
|  | float | vStart = `0.0f`,
|  | bool | force_1_Channel_To_4_Channel = `false`
| ) |  | `[virtual]`

Search for all occurrences

Save the image to an external file.

The extension of the file will determine the file type. If bForce is true the image should be saved even it means data loss. Otherwise an exception should drop. Optionally, when saving to PSD, if you specify a material and a uv offset for this texture, it can draw the base uv mesh on a layer above the image layer.

virtual unsigned int Width | ( | void |  | ) | const `[virtual]`

Search for all occurrences

Return the width of the image in pixels.

virtual unsigned int Height | ( | void |  | ) | const `[virtual]`

Search for all occurrences

Return the height of the image in pixels.

virtual Format Format | ( | void |  | ) | const `[virtual]`

Search for all occurrences

Return the format of the image.

virtual unsigned int ChannelCount | ( | void |  | ) | const `[virtual]`

Search for all occurrences

Return the number of channels in the image.

virtual unsigned int BytesPerPixel | ( | void |  | ) | const `[virtual]`

Search for all occurrences

Return the number of bytes used by a pixel.

unsigned int curBytesPerPixel | ( |  | ) | const `[inline]`

Search for all occurrences

Return the number of bytes used by a pixel at the current proxy level.

Definition at line 2298 of file image.h.

    { return (getProxyLevel() != 0) ? ChannelCount() : BytesPerPixel(); }

virtual unsigned int TotalBytes | ( | void |  | ) | const `[virtual]`

Search for all occurrences

Return the number of bytes used by the whole image.

unsigned int curTotalBytes | ( | void |  | ) | const `[inline]`

Search for all occurrences

Return the number of bytes used by the whole image (current proxy level)

Definition at line 2304 of file image.h.

    { return curWidth() * curHeight() * curBytesPerPixel(); }

virtual void SetValueAt | ( | unsigned int | iXPos,
|  | unsigned int | iYPos,
|  | unsigned int | iChannel,
|  | float | fValue
| ) |  | `[virtual]`

Search for all occurrences

Set value for a specified texel.

For integer maps 1 should be mapped for the maximum value (255 for 8 bit images and 65535 for 16 bit images) This fcn is very slow and deprecated. Use LockPageSet, or the fast templated pixel accessor classes.

virtual float ValueAt | ( | unsigned int | iXPos,
|  | unsigned int | iYPos,
|  | unsigned int | iChannel
| ) |  | const `[virtual]`

Search for all occurrences

Get the value at a given coordinate.

This fcn is very slow and deprecated. Use LockPageSet, or the fast templated pixel accessor classes.

virtual float ValueAt | ( | float | fXPos,
|  | float | fYPos,
|  | unsigned int | iChannel
| ) |  | const `[virtual]`

Search for all occurrences

Get interpolated value at a given coordinate.

This fcn is very slow and deprecated. Use LockPageSet, or the fast templated pixel accessor classes.

virtual void SetColorAt | ( | unsigned int | iXPos,
|  | unsigned int | iYPos,
|  | const Color & | cColor
| ) |  | `[virtual]`

Search for all occurrences

Set value for a specified texel.

For integer maps 1 should be mapped for the maximum value (255 for 8 bit images and 65535 for 16 bit images)

virtual Color ColorAt | ( | unsigned int | iXPos,
|  | unsigned int | iYPos
| ) |  | const `[virtual]`

Search for all occurrences

Get the value at a given coordinate.

virtual Color ColorAt | ( | float | fXPos,
|  | float | fYPos
| ) |  | const `[virtual]`

Search for all occurrences

Get interpolated value at a given coordinate.

virtual QImage* ConvertToQImage | ( |  | ) | `[virtual]`

Search for all occurrences

Create a QImage object from the image data for display purposes.

This function allocates the QImage -- the caller will have to delete it when done with the image.

virtual void ConvertFromQImage | ( | QImage & | qImg,
|  | bool | tiled = `false`
| ) |  | `[virtual]`

Search for all occurrences

Creates the image from a QImage.

virtual bool Fragmented | ( |  | ) | const `[virtual]`

Search for all occurrences

returns true if the image is not stored in one physically contiguous piece of CPU visible memory -- If so, you must use lockPageSet to get at portions of the image data...

virtual bool Tiled | ( |  | ) | const `[virtual]`

Search for all occurrences

returns true if this is a tiled and versioned image

bool Versioned | ( |  | ) | const `[inline]`

Search for all occurrences

returns true if this is a tiled and versioned image

Definition at line 2352 of file image.h.

    { return Tiled(); }

virtual bool NewVersion | ( |  | ) | `[virtual]`

Search for all occurrences

checkpoint and create a new version of this image.

returns true if it worked, false otherwise

virtual bool PrevVersion | ( |  | ) | `[virtual]`

Search for all occurrences

makes the previous version current -- used for undo returns true if it worked, false otherwise marks the proxy dirty

virtual bool NextVersion | ( |  | ) | `[virtual]`

Search for all occurrences

makes the next version current -- used for redo returns true if it worked, false otherwise marks the proxy dirty

virtual int NumVersions | ( |  | ) | `[virtual]`

Search for all occurrences

returns the number of versions. returns 1 for unversioned images

virtual bool MergeOldestVersions | ( |  | ) | `[virtual]`

Search for all occurrences

merges the oldest two versions -- used to limit the number of items on the undo queue.

returns true if it worked, false otherwise

virtual bool PurgeNewerVersions | ( |  | ) | `[virtual]`

Search for all occurrences

Creating a new version will implicitly purge nerer versions, but if another operation takes place that puts a new item on the undo queue, this should be called to purge newer versions of this image returns true if it worked, false otherwise.

virtual bool PurgeAllButCurrentVersion | ( |  | ) | `[virtual]`

Search for all occurrences

Releases all but the current version -- used to flush the undo queue.

returns true if it worked, false otherwise

virtual void* Data | ( | int | iRow = `-1`,
|  | bool | writing = `true`
| ) |  | `[virtual]`

Search for all occurrences

Get a pointer to the raw data of a row of the image.

If the given row index is -1, then a pointer - if exists - to the whole data block is returned. These are deprecated and are going away shortly. DO NOT USE THEM IN NEW CODE. Use LockPageSet instead. These will not work on tiled images at all.

virtual const void* Data | ( | int | iRow = `-1`,
|  | bool | writing = `false`
| ) |  | const `[virtual]`

Search for all occurrences

virtual void DrawUVs | ( | Material * | pMaterial,
|  | float | uStart = `0.0f`,
|  | float | vStart = `0.0f`,
|  | bool | baseLevel = `true`
| ) |  | `[virtual]`

Search for all occurrences

Draw the uv mesh for a given material into this image -- either the base or active level.

uv offset can be specified for tiled materials. These offsets should be 0.0, 1.0, 1.0 etc... The default is to draw from 0.0, 0.0 to 1.0, 1.0 marks the proxy dirty

virtual void scaleTileBilinear_4Chan_uchar | ( | float | x,
|  | float | y,
|  | float | nx,
|  | float | ny,
|  | unsigned int * | data,
|  | int | dx,
|  | int | dy,
|  | int | dnx,
|  | int | dny,
|  | float | xScale,
|  | float | yScale
| ) |  | const `[virtual]`

Search for all occurrences

Fast, thread safe image scaler.

Works only on 4 channel 8 bit/channel images Note: Not a permanent part of the API.

virtual void GenerateUpscaled | ( | Image * | targetImg,
|  | int | factor
| ) |  | `[virtual]`

Search for all occurrences

This upscales an image with good filtering (bilinear to Lanczos as needed based on the scale factor.

The upscaled image will be the same bit depth as the source Current factors supported is 2. Soon to come, 4, 8, and 16. this function only works on tiled images. Not yet implemented TODO.

static void MultiplyRGBByAlpha_uc4 | ( | unsigned char * | buffer,
|  | int | numPixels
| ) |  | `[static]`

Search for all occurrences

multiply alpha into RGB for the specified number of pixels.

4 Byte per pixel, 8 bit unsigned char per channel only.

virtual bool isDirty | ( |  | ) | const `[virtual]`

Search for all occurrences

Query if the contents of this image have changed since the last call to setClean.

virtual void setDirty | ( |  | ) | `[virtual]`

Search for all occurrences

Explicitly set the image state to dirty.

All calls to the image class that change the contents of an image will automatically set the dirty flag, so in the normal course of affairs, you should not have to call this function.

virtual void setClean | ( |  | ) | `[virtual]`

Search for all occurrences

explicitly set the image state to clean.

virtual void VerticalFlip | ( |  | ) | `[virtual]`

Search for all occurrences

vertically flip the image (make it upside down)

virtual void AdjustImageCacheSize | ( |  | ) | `[virtual]`

Search for all occurrences

Causes the image cache size to adjust based on the amount of memory available.

virtual void ConvertTo4Channel | ( |  | ) | `[virtual]`

Search for all occurrences

makes the image 4 channels. with the alphas 1.0.

## Friends And Related Function Documentation

friend class ImgPageIterator `[friend]`

Search for all occurrences

Definition at line 1509 of file image.h.

friend class ImgLockPageIterator `[friend]`

Search for all occurrences

Definition at line 1510 of file image.h.

## Member Data Documentation

unsigned char m_FillPixel[16] `[protected]`

Search for all occurrences

Definition at line 1542 of file image.h.

ImageDescriptor m_Descriptor `[protected]`

Search for all occurrences

Definition at line 1543 of file image.h.

ImageType m_ImageType `[protected]`

Search for all occurrences

Definition at line 1545 of file image.h.

unsigned char m_ProxyLevel `[protected]`

Search for all occurrences

Definition at line 1547 of file image.h.

Image* m_pProxyImages[MAX_PROXY_LEVEL+1] `[protected]`

Search for all occurrences

Definition at line 1548 of file image.h.

bool m_bDownsampleProxyTo8Bit `[protected]`

Search for all occurrences

Definition at line 1549 of file image.h.

ProxyInterruptFunction m_pProxyIntFcn `[protected]`

Search for all occurrences

Definition at line 1551 of file image.h.

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

- Mudbox/image.h

Image Image Image Image Image Image Image Image Image Image
Image Image Image Image Image Image Image Image Image Image