Open CASCADE Technology
6.9.0
|
Class represents packed image plane. More...
#include <Image_PixMap.hxx>
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... | |
Class represents packed image plane.
typedef enum Image_PixMap::tagFormat Image_PixMap::ImgFormat |
This enumeration define packed image plane formats.
This enumeration define packed image plane formats.
Image_PixMap::Image_PixMap | ( | ) |
Empty constructor. Initialize the NULL image plane.
|
virtual |
Destructor.
|
inline |
|
inline |
|
inline |
Access image pixel with specified color type. This method does not perform any type checks - use on own risk (check Format() before)!
|
virtual |
Method correctly deallocate internal buffer.
Reimplemented in Image_AlienPixMap.
|
inline |
|
inline |
|
inline |
|
virtual |
Initialize by copying data. If you want to copy alien data you should create wrapper using InitWrapper() before.
Reimplemented in Image_AlienPixMap.
|
virtual |
Initialize image plane with required dimensions. Memory will be left uninitialized (performance trick).
Reimplemented in Image_AlienPixMap.
|
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).
|
inlinestatic |
Determine Big-Endian at runtime.
|
inline |
|
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.
|
inline |
Compute the maximal row alignment for current row size.
|
inline |
Returns the pixel color. This function is relatively slow.
theX | - column index from left |
theY | - row index from top |
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)
|
inline |
|
inline |
|
inline |
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).
|
inline |
Setup scanlines order in memory - top-down or bottom-up. Drawers should explicitly specify this value if current state IsTopDown() was ignored!
theIsTopDown | top-down flag |
|
inline |
|
inline |
|
static |
|
inline |
|
inline |
|
inline |
|
inline |
Returns +1 if scanlines ordered in Top->Down order in memory and -1 otherwise.
|
inline |
Access image pixel with specified color type. This method does not perform any type checks - use on own risk (check Format() before)!
|
inline |
|
protected |
data buffer
|
protected |
pixel format