Open CASCADE Technology: Image_PixMap Class Reference

Open CASCADE Technology 6.9.1

- Main Page
- Related Pages
- Namespaces
- Data Structures
- Files

- Data Structures
- Data Structure Index
- Class Hierarchy
- Data Fields

Public Types | Public Member Functions | Static Public Member Functions
Image_PixMap Class Reference

Class represents packed image plane. More...

`#include <Image_PixMap.hxx>`

Inheritance diagram for Image_PixMap:
[legend]

## Public Types
enum | tagFormat { ImgUNKNOWN = 0, ImgGray = 1, ImgAlpha, ImgRGB, ImgBGR, ImgRGB32, ImgBGR32, ImgRGBA, ImgBGRA, ImgGrayF, ImgAlphaF, ImgRGBF, ImgBGRF, ImgRGBAF, ImgBGRAF }
| This enumeration define packed image plane formats. More...
typedef enum Image_PixMap::tagFormat | ImgFormat
| This enumeration define packed image plane formats. More...

## Public Member Functions
ImgFormat | Format () const
void | SetFormat (const ImgFormat thePixelFormat)
| Override pixel format specified by InitXXX() methods. Will throw exception if pixel size of new format is not equal to currently initialized format. Intended to switch formats indicating different interpretation of the same data (e.g. ImgGray and ImgAlpha). More...
Standard_Size | Width () const
Standard_Size | Height () const
Standard_Size | SizeX () const
Standard_Size | SizeY () const
Standard_Real | Ratio () const
bool | IsEmpty () const
| Image_PixMap ()
| Empty constructor. Initialize the NULL image plane. More...
virtual | ~Image_PixMap ()
| Destructor. More...
Quantity_Color | PixelColor (const Standard_Integer theX, const Standard_Integer theY) const
| Returns the pixel color. This function is relatively slow. More...
Quantity_Color | PixelColor (const Standard_Integer theX, const Standard_Integer theY, Quantity_Parameter &theAlpha) const
| Returns the pixel color. This function is relatively slow. theAlpha argument is set to color intensity (0 - transparent, 1 - opaque) More...
virtual bool | InitWrapper (ImgFormat thePixelFormat, Standard_Byte *theDataPtr, const Standard_Size theSizeX, const Standard_Size theSizeY, const Standard_Size theSizeRowBytes=0)
| Initialize image plane as wrapper over alien data. Data will not be copied! Notice that caller should ensure that data pointer will not be released during this wrapper lifetime. You may call InitCopy() to perform data copying. More...
virtual bool | InitTrash (ImgFormat thePixelFormat, const Standard_Size theSizeX, const Standard_Size theSizeY, const Standard_Size theSizeRowBytes=0)
| Initialize image plane with required dimensions. Memory will be left uninitialized (performance trick). More...
virtual bool | InitCopy (const Image_PixMap &theCopy)
| Initialize by copying data. If you want to copy alien data you should create wrapper using InitWrapper() before. More...
bool | InitZero (ImgFormat thePixelFormat, const Standard_Size theSizeX, const Standard_Size theSizeY, const Standard_Size theSizeRowBytes=0, const Standard_Byte theValue=0)
| Initialize image plane with required dimensions. Buffer will be zeroed (black color for most formats). More...
virtual void | Clear ()
| Method correctly deallocate internal buffer. More...
Public Member Functions inherited from Standard_Transient
| Standard_Transient ()
| Empty constructor. More...
| Standard_Transient (const Standard_Transient &)
| Copy constructor – does nothing. More...
Standard_Transient & | operator= (const Standard_Transient &)
| Assignment operator, needed to avoid copying reference counter. More...
virtual | ~Standard_Transient ()
| Destructor must be virtual. More...
virtual void | Delete () const
| Memory deallocator for transient classes. More...
virtual const Handle_Standard_Type & | DynamicType () const
| Returns a type information object about this object. More...
Standard_Boolean | IsInstance (const Handle_Standard_Type &theType) const
| Returns a true value if this is an instance of Type. More...
Standard_Boolean | IsInstance (const Standard_CString theTypeName) const
| Returns a true value if this is an instance of TypeName. More...
Standard_Boolean | IsKind (const Handle_Standard_Type &theType) const
| Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More...
Standard_Boolean | IsKind (const Standard_CString theTypeName) const
| Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More...
virtual Handle_Standard_Transient | This () const
| Returns a Handle which references this object. Must never be called to objects created in stack. More...
Standard_Integer | GetRefCount () const
| Get the reference counter of this object. More...

## Static Public Member Functions
static bool | IsBigEndianHost ()
| Determine Big-Endian at runtime. More...

## low-level API for batch-processing (pixels reading / comparison / modification)
Image_PixMapData | myData
| data buffer More...
ImgFormat | myImgFormat
| pixel format More...
static Standard_Size | SizePixelBytes (const Image_PixMap::ImgFormat thePixelFormat)
bool | IsTopDown () const
| Returns TRUE if image data is stored from Top to the Down. By default Bottom Up order is used instead (topmost scanlines starts from the bottom in memory). which is most image frameworks naturally support. More...
void | SetTopDown (const bool theIsTopDown)
| Setup scanlines order in memory - top-down or bottom-up. Drawers should explicitly specify this value if current state IsTopDown() was ignored! More...
Standard_Size | TopDownInc () const
| Returns +1 if scanlines ordered in Top->Down order in memory and -1 otherwise. More...
const Standard_Byte * | Data () const
Standard_Byte * | ChangeData ()
const Standard_Byte * | Row (const Standard_Size theRow) const
Standard_Byte * | ChangeRow (const Standard_Size theRow)
Standard_Size | SizePixelBytes () const
Standard_Size | SizeRowBytes () const
Standard_Size | RowExtraBytes () const
Standard_Size | MaxRowAligmentBytes () const
| Compute the maximal row alignment for current row size. More...
Standard_Size | SizeBytes () const
template<typename ColorType_t >
const ColorType_t & | Value (const Standard_Size theRow, const Standard_Size theCol) const
| Access image pixel with specified color type. This method does not perform any type checks - use on own risk (check Format() before)! More...
template<typename ColorType_t >
ColorType_t & | ChangeValue (const Standard_Size theRow, const Standard_Size theCol)
| Access image pixel with specified color type. This method does not perform any type checks - use on own risk (check Format() before)! More...

## Detailed Description

Class represents packed image plane.

## Member Typedef Documentation

typedef enum Image_PixMap::tagFormat Image_PixMap::ImgFormat

This enumeration define packed image plane formats.

## Member Enumeration Documentation

enum Image_PixMap::tagFormat

This enumeration define packed image plane formats.

Enumerator
ImgUNKNOWN | unsupported or unknown format
ImgGray | 1 byte per pixel, intensity of the color
ImgAlpha | 1 byte per pixel, transparency
ImgRGB | 3 bytes packed RGB image plane
ImgBGR | same as RGB but with different components order
ImgRGB32 | 4 bytes packed RGB image plane (1 extra byte for alignment, may have undefined value)
ImgBGR32 | same as RGB but with different components order
ImgRGBA | 4 bytes packed RGBA image plane
ImgBGRA | same as RGBA but with different components order
ImgGrayF | 1 float (4-bytes) per pixel (1-component plane), intensity of the color
ImgAlphaF | 1 float (4-bytes) per pixel (1-component plane), transparency
ImgRGBF | 3 floats (12-bytes) RGB image plane
ImgBGRF | same as RGBF but with different components order
ImgRGBAF | 4 floats (16-bytes) RGBA image plane
ImgBGRAF | same as RGBAF but with different components order

## Constructor & Destructor Documentation

Image_PixMap::Image_PixMap | ( |  | ) |

Empty constructor. Initialize the NULL image plane.

virtual Image_PixMap::~Image_PixMap | ( |  | ) |
| virtual

Destructor.

## Member Function Documentation

Standard_Byte* Image_PixMap::ChangeData | ( |  | ) |
| inline

Returns
  data pointer for low-level operations (copying entire buffer, parsing with extra tools etc.).

Standard_Byte* Image_PixMap::ChangeRow | ( | const Standard_Size | theRow | ) |
| inline

Returns
  data pointer to requested row (first column).

template<typename ColorType_t >

ColorType_t& Image_PixMap::ChangeValue | ( | const Standard_Size | theRow,
|  | const Standard_Size | theCol
| ) |  |
| inline

Access image pixel with specified color type. This method does not perform any type checks - use on own risk (check Format() before)!

virtual void Image_PixMap::Clear | ( |  | ) |
| virtual

Method correctly deallocate internal buffer.

Reimplemented in Image_AlienPixMap.

const Standard_Byte* Image_PixMap::Data | ( |  | ) | const
| inline

Returns
  data pointer for low-level operations (copying entire buffer, parsing with extra tools etc.).

ImgFormat Image_PixMap::Format | ( |  | ) | const
| inline

Standard_Size Image_PixMap::Height | ( |  | ) | const
| inline

Returns
  image height in pixels

virtual bool Image_PixMap::InitCopy | ( | const Image_PixMap & | theCopy | ) |
| virtual

Initialize by copying data. If you want to copy alien data you should create wrapper using InitWrapper() before.

Reimplemented in Image_AlienPixMap.

virtual bool Image_PixMap::InitTrash | ( | ImgFormat | thePixelFormat,
|  | const Standard_Size | theSizeX,
|  | const Standard_Size | theSizeY,
|  | const Standard_Size | theSizeRowBytes = `0`
| ) |  |
| virtual

Initialize image plane with required dimensions. Memory will be left uninitialized (performance trick).

Reimplemented in Image_AlienPixMap.

virtual bool Image_PixMap::InitWrapper | ( | ImgFormat | thePixelFormat,
|  | Standard_Byte * | theDataPtr,
|  | const Standard_Size | theSizeX,
|  | const Standard_Size | theSizeY,
|  | const Standard_Size | theSizeRowBytes = `0`
| ) |  |
| virtual

Initialize image plane as wrapper over alien data. Data will not be copied! Notice that caller should ensure that data pointer will not be released during this wrapper lifetime. You may call InitCopy() to perform data copying.

bool Image_PixMap::InitZero | ( | ImgFormat | thePixelFormat,
|  | const Standard_Size | theSizeX,
|  | const Standard_Size | theSizeY,
|  | const Standard_Size | theSizeRowBytes = `0`,
|  | const Standard_Byte | theValue = `0`
| ) |  |

Initialize image plane with required dimensions. Buffer will be zeroed (black color for most formats).

static bool Image_PixMap::IsBigEndianHost | ( |  | ) |
| inlinestatic

Determine Big-Endian at runtime.

bool Image_PixMap::IsEmpty | ( |  | ) | const
| inline

Returns
  true if data is NULL.

bool Image_PixMap::IsTopDown | ( |  | ) | const
| inline

Returns TRUE if image data is stored from Top to the Down. By default Bottom Up order is used instead (topmost scanlines starts from the bottom in memory). which is most image frameworks naturally support.

Notice that access methods within this class automatically convert input row-index to apply this flag! You should use this flag only if interconnect with alien APIs and buffers.

Returns
  true if image data is top-down

Standard_Size Image_PixMap::MaxRowAligmentBytes | ( |  | ) | const
| inline

Compute the maximal row alignment for current row size.

Returns
  maximal row alignment in bytes (up to 16 bytes).

Quantity_Color Image_PixMap::PixelColor | ( | const Standard_Integer | theX,
|  | const Standard_Integer | theY
| ) |  | const
| inline

Returns the pixel color. This function is relatively slow.

Parameters

  theX | - column index from left
  theY | - row index from top

Returns
  the pixel color

Quantity_Color Image_PixMap::PixelColor | ( | const Standard_Integer | theX,
|  | const Standard_Integer | theY,
|  | Quantity_Parameter & | theAlpha
| ) |  | const

Returns the pixel color. This function is relatively slow. theAlpha argument is set to color intensity (0 - transparent, 1 - opaque)

Standard_Real Image_PixMap::Ratio | ( |  | ) | const
| inline

Returns
  width / height.

const Standard_Byte* Image_PixMap::Row | ( | const Standard_Size | theRow | ) | const
| inline

Returns
  data pointer to requested row (first column).

Standard_Size Image_PixMap::RowExtraBytes | ( |  | ) | const
| inline

Returns
  the extra bytes in the row.

void Image_PixMap::SetFormat | ( | const ImgFormat | thePixelFormat | ) |

Override pixel format specified by InitXXX() methods. Will throw exception if pixel size of new format is not equal to currently initialized format. Intended to switch formats indicating different interpretation of the same data (e.g. ImgGray and ImgAlpha).

void Image_PixMap::SetTopDown | ( | const bool | theIsTopDown | ) |
| inline

Setup scanlines order in memory - top-down or bottom-up. Drawers should explicitly specify this value if current state IsTopDown() was ignored!

Parameters

  theIsTopDown | top-down flag

Standard_Size Image_PixMap::SizeBytes | ( |  | ) | const
| inline

Returns
  buffer size

Standard_Size Image_PixMap::SizePixelBytes | ( |  | ) | const
| inline

Returns
  bytes reserved for one pixel (may include extra bytes for alignment).

static Standard_Size Image_PixMap::SizePixelBytes | ( | const Image_PixMap::ImgFormat | thePixelFormat | ) |
| static

Returns
  bytes reserved for one pixel (may include extra bytes for alignment).

Standard_Size Image_PixMap::SizeRowBytes | ( |  | ) | const
| inline

Returns
  bytes reserved per row. Could be larger than needed to store packed row (extra bytes for alignment etc.).

Standard_Size Image_PixMap::SizeX | ( |  | ) | const
| inline

Returns
  image width in pixels

Standard_Size Image_PixMap::SizeY | ( |  | ) | const
| inline

Returns
  image height in pixels

Standard_Size Image_PixMap::TopDownInc | ( |  | ) | const
| inline

Returns +1 if scanlines ordered in Top->Down order in memory and -1 otherwise.

Returns
  scanline increment for Top->Down iteration

template<typename ColorType_t >

const ColorType_t& Image_PixMap::Value | ( | const Standard_Size | theRow,
|  | const Standard_Size | theCol
| ) |  | const
| inline

Access image pixel with specified color type. This method does not perform any type checks - use on own risk (check Format() before)!

Standard_Size Image_PixMap::Width | ( |  | ) | const
| inline

Returns
  image width in pixels

## Field Documentation

Image_PixMapData Image_PixMap::myData
| protected

data buffer

ImgFormat Image_PixMap::myImgFormat
| protected

pixel format

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

- Image_PixMap.hxx