Open CASCADE Technology
7.6.0
|
Class represents packed image plane. More...
#include <Image_PixMap.hxx>
Public Member Functions | |
Image_Format | Format () const |
void | SetFormat (const Image_Format 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_ColorRGBA | PixelColor (const Standard_Integer theX, const Standard_Integer theY, const Standard_Boolean theToLinearize=Standard_False) const |
Returns the pixel color. This function is relatively slow. Beware that this method takes coordinates in opposite order in contrast to ::Value() and ::ChangeValue(). More... | |
void | SetPixelColor (const Standard_Integer theX, const Standard_Integer theY, const Quantity_Color &theColor, const Standard_Boolean theToDeLinearize=Standard_False) |
Sets the pixel color. This function is relatively slow. Beware that this method takes coordinates in opposite order in contrast to ::Value() and ::ChangeValue(). More... | |
void | SetPixelColor (const Standard_Integer theX, const Standard_Integer theY, const Quantity_ColorRGBA &theColor, const Standard_Boolean theToDeLinearize=Standard_False) |
Sets the pixel color. This function is relatively slow. Beware that this method takes coordinates in opposite order in contrast to ::Value() and ::ChangeValue(). More... | |
virtual bool | InitWrapper (Image_Format 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 (Image_Format 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 (Image_Format 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 opencascade::handle< Standard_Type > & | DynamicType () const |
Returns a type descriptor about this object. More... | |
Standard_Boolean | IsInstance (const opencascade::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 opencascade::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... | |
Standard_Transient * | This () const |
Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero. More... | |
Standard_Integer | GetRefCount () const |
Get the reference counter of this object. More... | |
void | IncrementRefCounter () const |
Increments the reference counter of this object. More... | |
Standard_Integer | DecrementRefCounter () const |
Decrements the reference counter of this object; returns the decremented value. More... | |
Static Public Member Functions | |
static bool | IsBigEndianHost () |
Determine Big-Endian at runtime. More... | |
static bool | SwapRgbaBgra (Image_PixMap &theImage) |
Auxiliary method for swapping bytes between RGB and BGR formats. This method modifies the image data but does not change pixel format! Method will fail if pixel format is not one of the following: More... | |
static void | ToBlackWhite (Image_PixMap &theImage) |
Convert image to Black/White. More... | |
static bool | FlipY (Image_PixMap &theImage) |
Reverse line order as it draws it from bottom to top. More... | |
static const Handle< NCollection_BaseAllocator > & | DefaultAllocator () |
Return default image data allocator. More... | |
static Standard_CString | ImageFormatToString (Image_Format theFormat) |
Return string representation of pixel format. More... | |
static Standard_CString | ImageFormatToString (Image_CompressedFormat theFormat) |
Return string representation of compressed pixel format. More... | |
Static Public Member Functions inherited from Standard_Transient | |
static const char * | get_type_name () |
Returns a type descriptor about this object. More... | |
static const opencascade::handle< Standard_Type > & | get_type_descriptor () |
Returns type descriptor of Standard_Transient class. More... | |
low-level API for batch-processing (pixels reading / comparison / modification) | |
Image_PixMapData | myData |
data buffer More... | |
Image_Format | myImgFormat |
pixel format More... | |
static Standard_Size | SizePixelBytes (const Image_Format thePixelFormat) |
static float | ConvertFromHalfFloat (const uint16_t theHalf) |
Convert 16-bit half-float value into 32-bit float (simple conversion). More... | |
static uint16_t | ConvertToHalfFloat (const float theFloat) |
Convert 32-bit float value into IEEE-754 16-bit floating-point format without infinity: 1-5-10, exp-15, +-131008.0, +-6.1035156E-5, +-5.9604645E-8, 3.311 digits. More... | |
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... | |
const Standard_Byte * | RawValue (Standard_Size theRow, Standard_Size theCol) const |
Access image pixel as raw data pointer. This method does not perform any type checks - use on own risk (check Format() before)! More... | |
Standard_Byte * | ChangeRawValue (Standard_Size theRow, Standard_Size theCol) |
Access image pixel as raw data pointer. This method does not perform any type checks - use on own risk (check Format() before)! More... | |
Additional Inherited Members | |
Public Types inherited from Standard_Transient | |
typedef void | base_type |
Returns a type descriptor about this object. More... | |
Class represents packed image plane.
Image_PixMap::Image_PixMap | ( | ) |
Empty constructor. Initialize the NULL image plane.
|
virtual |
Destructor.
|
inline |
|
inline |
Access image pixel as raw data pointer. This method does not perform any type checks - use on own risk (check Format() before)!
|
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.
|
inlinestatic |
Convert 16-bit half-float value into 32-bit float (simple conversion).
|
inlinestatic |
Convert 32-bit float value into IEEE-754 16-bit floating-point format without infinity: 1-5-10, exp-15, +-131008.0, +-6.1035156E-5, +-5.9604645E-8, 3.311 digits.
|
inline |
|
static |
Return default image data allocator.
|
static |
Reverse line order as it draws it from bottom to top.
|
inline |
|
inline |
|
static |
Return string representation of compressed pixel format.
|
static |
Return string representation of pixel format.
|
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 | ( | Image_Format | 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.
Quantity_ColorRGBA Image_PixMap::PixelColor | ( | const Standard_Integer | theX, |
const Standard_Integer | theY, | ||
const Standard_Boolean | theToLinearize = Standard_False |
||
) | const |
Returns the pixel color. This function is relatively slow. Beware that this method takes coordinates in opposite order in contrast to ::Value() and ::ChangeValue().
theX | [in] column index from left |
theY | [in] row index from top |
theToLinearize | [in] when TRUE, the color stored in non-linear color space (e.g. Image_Format_RGB) will be linearized |
|
inline |
|
inline |
Access image pixel as raw data pointer. This method does not perform any type checks - use on own risk (check Format() before)!
|
inline |
|
inline |
void Image_PixMap::SetFormat | ( | const Image_Format | 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 |
Sets the pixel color. This function is relatively slow. Beware that this method takes coordinates in opposite order in contrast to ::Value() and ::ChangeValue().
theX | [in] column index from left |
theY | [in] row index from top |
theColor | [in] color to store |
theToDeLinearize | [in] when TRUE, the gamma correction will be applied for storing in non-linear color space (e.g. Image_Format_RGB) |
void Image_PixMap::SetPixelColor | ( | const Standard_Integer | theX, |
const Standard_Integer | theY, | ||
const Quantity_ColorRGBA & | theColor, | ||
const Standard_Boolean | theToDeLinearize = Standard_False |
||
) |
Sets the pixel color. This function is relatively slow. Beware that this method takes coordinates in opposite order in contrast to ::Value() and ::ChangeValue().
theX | [in] column index from left |
theY | [in] row index from top |
theColor | [in] color to store |
theToDeLinearize | [in] when TRUE, the gamma correction will be applied for storing in non-linear color space (e.g. Image_Format_RGB) |
|
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 |
|
static |
Auxiliary method for swapping bytes between RGB and BGR formats. This method modifies the image data but does not change pixel format! Method will fail if pixel format is not one of the following:
|
static |
Convert image to Black/White.
|
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