ACF $AcfVersion:0$
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
iimg::CBitmap Class Reference

Bitmap implementation based on Qt QImage. More...

#include <CBitmap.h>

Inheritance diagram for iimg::CBitmap:
iimg::CBitmapBase iimg::IQImageProvider i2d::CObject2dBase iimg::IBitmap istd::IPolymorphic i2d::IObject2d iimg::IRasterImage iser::IObject i2d::ICalibrationProvider i2d::IObject2d iser::ISerializable istd::IChangeable iser::IObject i2d::ICalibrationProvider istd::IChangeable istd::IPolymorphic iser::ISerializable istd::IChangeable istd::IPolymorphic istd::IChangeable istd::IPolymorphic istd::IPolymorphic iser::TCopySerializedWrap< iimg::CBitmap > iimg::CBitmapSurface

Public Member Functions

 CBitmap ()
 
 CBitmap (const CBitmap &bitmap)
 
 CBitmap (const QImage &image)
 
QImage & GetQImageRef ()
 
virtual const QImage & GetQImage () const override
 Gets a QImage object.
 
virtual bool CopyImageFrom (const QImage &image) override
 Copies the image data from a QImage object.
 
virtual bool IsFormatSupported (PixelFormat pixelFormat) const override
 Get true if the pixel format is supported by the bitmap implementation.
 
virtual PixelFormat GetPixelFormat () const override
 Get the bitmap's pixel format.
 
virtual bool CreateBitmap (PixelFormat pixelFormat, const istd::CIndex2d &size, int pixelBitsCount=0, int componentsCount=0) override
 Create bitmap with specified size and format.
 
virtual bool CreateBitmap (PixelFormat pixelFormat, const istd::CIndex2d &size, void *dataPtr, bool releaseFlag, int linesDifference=0) override
 Create bitmap with specified size and format using external image data buffer.
 
virtual int GetLinesDifference () const override
 Get address difference between next and previous line.
 
virtual int GetPixelsDifference () const override
 Get address difference between next and previous pixel.
 
virtual const void * GetLinePtr (int positionY) const override
 Get pointer to buffer for single line.
 
virtual void * GetLinePtr (int positionY) override
 Get pointer to buffer for single line.
 
virtual void ResetImage () override
 Reset this image.
 
virtual void ClearImage () override
 Cleat this image.
 
virtual istd::CIndex2d GetImageSize () const override
 Get size of this raster image.
 
virtual QByteArray GetFactoryId () const override
 
virtual int GetSupportedOperations () const override
 Get set of flags for supported operations.
 
virtual bool CopyFrom (const istd::IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS) override
 Copy this object from another one.
 
virtual istd::TUniqueInterfacePtr< istd::IChangeableCloneMe (CompatibilityMode mode=CM_WITHOUT_REFS) const override
 Make a copy of this object.
 
virtual bool ResetData (CompatibilityMode mode=CM_WITHOUT_REFS) override
 Reset data to its default state.
 
- Public Member Functions inherited from iimg::CBitmapBase
virtual i2d::CVector2d GetCenter () const override
 Returns center of this 2D-object.
 
virtual void MoveCenterTo (const i2d::CVector2d &position) override
 Move object to position position.
 
virtual i2d::CRectangle GetBoundingBox () const override
 Get bounding box of this shape.
 
virtual bool CreateImageFromRegion (const iimg::IBitmap &sourceBitmap, const i2d::CRect &region) override
 Create image as a copy of rectangular region of some other image.
 
virtual int GetLineBytesCount () const override
 Number of bytes per single line.
 
virtual int GetComponentBitsCount (int componentIndex=0) const override
 Get number of bits per single pixel component.
 
virtual int GetPixelBitsCount () const override
 Get total number of bits per single pixel.
 
virtual bool IsEmpty () const override
 Return true if this image is empty.
 
virtual int GetComponentsCount () const override
 Get number of color components.
 
virtual icmm::CVarColor GetColorAt (const istd::CIndex2d &position) const override
 Get color at specified pixel.
 
virtual bool SetColorAt (const istd::CIndex2d &position, const icmm::CVarColor &color) override
 Set color at specified pixel.
 
virtual const icmm::IColorModelGetColorModel () const override
 Get the color model related to the image.
 
virtual bool Serialize (iser::IArchive &archive) override
 Load or store state of this object as a archive stream.
 
- Public Member Functions inherited from i2d::CObject2dBase
 CObject2dBase ()
 
 CObject2dBase (const CObject2dBase &object2d)
 
 CObject2dBase (CObject2dBase &&object2d)
 
CObject2dBaseoperator= (const CObject2dBase &object2d)
 
CObject2dBaseoperator= (CObject2dBase &&object2d)
 
virtual const ICalibration2dGetCalibration () const override
 Get access to transformation object, which transforms a local logical coordinate system to global one.
 
virtual void SetCalibration (const ICalibration2d *calibrationPtr, bool releaseFlag=false) override
 Set calibration of this object.
 
virtual bool Transform (const ITransformation2d &transformation, ITransformation2d::ExactnessMode mode=ITransformation2d::EM_NONE, double *errorFactorPtr=NULL) override
 Transform this object using some transformation.
 
virtual bool InvTransform (const ITransformation2d &transformation, ITransformation2d::ExactnessMode mode=ITransformation2d::EM_NONE, double *errorFactorPtr=NULL) override
 Do inverse transformation of this object.
 
virtual bool GetTransformed (const ITransformation2d &transformation, IObject2d &result, ITransformation2d::ExactnessMode mode=ITransformation2d::EM_NONE, double *errorFactorPtr=NULL) const override
 Calulate transformation of the object into second one.
 
virtual bool GetInvTransformed (const ITransformation2d &transformation, IObject2d &result, ITransformation2d::ExactnessMode mode=ITransformation2d::EM_NONE, double *errorFactorPtr=NULL) const override
 Calulate inverse transformation of the object into second one.
 
- Public Member Functions inherited from iser::ISerializable
virtual quint32 GetMinimalVersion (int versionId) const
 Get minimal needed version to correct storing of this data.
 
- Public Member Functions inherited from istd::IChangeable
virtual bool IsEqual (const IChangeable &object) const
 Compare this object with another object.
 
virtual void BeginChanges (const ChangeSet &changeSet)
 Starts the change transaction.
 
virtual void EndChanges (const ChangeSet &changeSet)
 Ends the change transaction.
 
virtual void BeginChangeGroup (const ChangeSet &changeSet)
 Starts group of changes.
 
virtual void EndChangeGroup (const ChangeSet &changeSet)
 Ends group of changes.
 
- Public Member Functions inherited from istd::IPolymorphic
virtual ~IPolymorphic ()
 

Static Public Member Functions

static QByteArray GetTypeName ()
 
- Static Public Member Functions inherited from istd::IChangeable
static const ChangeSetGetNoChanges ()
 Get empty set of changes.
 
static const ChangeSetGetAnyChange ()
 Get anonymous change set.
 
static const ChangeSetGetAllChanges ()
 Get anonymous change set.
 
static const ChangeSetGetDelegatedChanges ()
 Get delegated change set.
 

Protected Member Functions

QImage::Format CalcQtFormat (PixelFormat pixelFormat) const
 
PixelFormat CalcFromQtFormat (QImage::Format imageFormat) const
 
bool SetQImage (const QImage &image)
 
void InitializeColorModel ()
 
- Protected Member Functions inherited from istd::IChangeable
virtual void OnBeginChanges ()
 Callback function for begin change event.
 
virtual void OnEndChanges (const ChangeSet &changeSet)
 Callback function for end change event.
 

Additional Inherited Members

- Public Types inherited from iimg::CBitmapBase
typedef i2d::CObject2dBase BaseClass
 
- Public Types inherited from i2d::IObject2d
enum  ChangeFlags { CF_OBJECT_POSITION = 0x6ba340 }
 
- Public Types inherited from istd::IChangeable
enum  ChangeFlags {
  CF_ACF_INTERNAL = 0 , CF_ALL_DATA , CF_ANY , CF_DESTROYING ,
  CF_DELEGATED , CF_NO_UNDO
}
 Data model change notification flags. More...
 
enum  SupportedOperations {
  SO_NONE = 0 , SO_OBSERVE = 1 << 0 , SO_COPY = 1 << 1 , SO_CLONE = 1 << 2 ,
  SO_COMPARE = 1 << 3 , SO_RESET = 1 << 4
}
 Flags for supported operations. More...
 
enum  CompatibilityMode { CM_STRICT , CM_WITHOUT_REFS , CM_WITH_REFS , CM_CONVERT }
 Control how relationship betweeen objects are interpreted. More...
 
typedef QMultiMap< QByteArray, QVariant > ChangeInfoMap
 
- Public Types inherited from iimg::IBitmap
enum  PixelFormat {
  PF_UNKNOWN = 0 , PF_MONO , PF_GRAY , PF_RGB ,
  PF_RGBA , PF_RGB24 , PF_GRAY16 , PF_GRAY32 ,
  PF_FLOAT32 , PF_FLOAT64 , PF_XYZ32 , PF_XY32 ,
  PF_RGB48 , PF_RGBA64 , PF_CMYK , PF_USER = 256
}
 Bitmap pixel format description. More...
 
- Static Protected Member Functions inherited from iimg::CBitmapBase
static int GetComponentsCount (IBitmap::PixelFormat format)
 
static int GetComponentBitsCount (IBitmap::PixelFormat format, int componentIndex)
 
static int GetPixelBitsCount (IBitmap::PixelFormat format)
 
- Static Protected Attributes inherited from i2d::CObject2dBase
static const ChangeSet s_objectMovedChange
 
static const ChangeSet s_objectModifiedChange
 

Detailed Description

Bitmap implementation based on Qt QImage.

Definition at line 26 of file CBitmap.h.

Constructor & Destructor Documentation

◆ CBitmap() [1/3]

iimg::CBitmap::CBitmap ( )

◆ CBitmap() [2/3]

iimg::CBitmap::CBitmap ( const CBitmap bitmap)

◆ CBitmap() [3/3]

iimg::CBitmap::CBitmap ( const QImage &  image)

Member Function Documentation

◆ CalcFromQtFormat()

PixelFormat iimg::CBitmap::CalcFromQtFormat ( QImage::Format  imageFormat) const
protected

◆ CalcQtFormat()

QImage::Format iimg::CBitmap::CalcQtFormat ( PixelFormat  pixelFormat) const
protected

◆ ClearImage()

virtual void iimg::CBitmap::ClearImage ( )
overridevirtual

Cleat this image.

After this operation all the image pixels will be set to the default value (black by default).

Implements iimg::IRasterImage.

◆ CloneMe()

virtual istd::TUniqueInterfacePtr< istd::IChangeable > iimg::CBitmap::CloneMe ( CompatibilityMode  mode = CM_WITHOUT_REFS) const
overridevirtual

Make a copy of this object.

Returns
new instance or NULL, if this operation is not supported.

Reimplemented from istd::IChangeable.

◆ CopyFrom()

virtual bool iimg::CBitmap::CopyFrom ( const istd::IChangeable object,
CompatibilityMode  mode = CM_WITHOUT_REFS 
)
overridevirtual

Copy this object from another one.

Default implementation in istd::IChangeable does nothing.

Reimplemented from i2d::CObject2dBase.

Reimplemented in iser::TCopySerializedWrap< iimg::CBitmap >.

◆ CopyImageFrom()

virtual bool iimg::CBitmap::CopyImageFrom ( const QImage &  image)
overridevirtual

Copies the image data from a QImage object.

Parameters
imageQImage object.
Returns
true if it succeeds, false if it fails.

Implements iimg::IQImageProvider.

◆ CreateBitmap() [1/2]

virtual bool iimg::CBitmap::CreateBitmap ( PixelFormat  pixelFormat,
const istd::CIndex2d size,
int  pixelBitsCount = 0,
int  componentsCount = 0 
)
overridevirtual

Create bitmap with specified size and format.

Parameters
pixelFormatbitmap format.
See also
PixelFormat
Parameters
sizebitmap size.
pixelBitsCountbits per pixel. Default value 0 means that the number of bits per pixel is defined by format specification.
componentsCountcomponents per pixel. Default value 0 means that the number of bits per pixel is defined by format specification.

Implements iimg::IBitmap.

◆ CreateBitmap() [2/2]

virtual bool iimg::CBitmap::CreateBitmap ( PixelFormat  pixelFormat,
const istd::CIndex2d size,
void *  dataPtr,
bool  releaseFlag,
int  linesDifference = 0 
)
overridevirtual

Create bitmap with specified size and format using external image data buffer.

Parameters
pixelFormatbitmap format.
See also
PixelFormat
Parameters
sizebitmap size.
dataPtrpointer to external image buffer.
releaseFlagif its true, external buffer will be managed (removed) by this object.
linesDifferenceaddress difference between next and previos line. If it equals 0, the value will be taken from size and number of bits per pixel.

Implements iimg::IBitmap.

◆ GetFactoryId()

virtual QByteArray iimg::CBitmap::GetFactoryId ( ) const
overridevirtual

Reimplemented from iser::IObject.

◆ GetImageSize()

virtual istd::CIndex2d iimg::CBitmap::GetImageSize ( ) const
overridevirtual

Get size of this raster image.

Implements iimg::IRasterImage.

◆ GetLinePtr() [1/2]

virtual const void * iimg::CBitmap::GetLinePtr ( int  positionY) const
overridevirtual

Get pointer to buffer for single line.

Parameters
positionYposition Y. It must be smaller than bitmap size Y component.

Implements iimg::IBitmap.

◆ GetLinePtr() [2/2]

virtual void * iimg::CBitmap::GetLinePtr ( int  positionY)
overridevirtual

Get pointer to buffer for single line.

Parameters
positionYposition Y. It must be smaller than bitmap size Y component.

Implements iimg::IBitmap.

◆ GetLinesDifference()

virtual int iimg::CBitmap::GetLinesDifference ( ) const
overridevirtual

Get address difference between next and previous line.

Implements iimg::IBitmap.

◆ GetPixelFormat()

virtual PixelFormat iimg::CBitmap::GetPixelFormat ( ) const
overridevirtual

Get the bitmap's pixel format.

See also
PixelFormat

Implements iimg::IBitmap.

◆ GetPixelsDifference()

virtual int iimg::CBitmap::GetPixelsDifference ( ) const
overridevirtual

Get address difference between next and previous pixel.

Implements iimg::IBitmap.

◆ GetQImage()

virtual const QImage & iimg::CBitmap::GetQImage ( ) const
overridevirtual

Gets a QImage object.

Implements iimg::IQImageProvider.

◆ GetQImageRef()

QImage & iimg::CBitmap::GetQImageRef ( )
inline

Definition at line 91 of file CBitmap.h.

◆ GetSupportedOperations()

virtual int iimg::CBitmap::GetSupportedOperations ( ) const
overridevirtual

Get set of flags for supported operations.

See also
SupportedOperations

Reimplemented from istd::IChangeable.

Reimplemented in iser::TCopySerializedWrap< iimg::CBitmap >.

◆ GetTypeName()

static QByteArray iimg::CBitmap::GetTypeName ( )
static

◆ InitializeColorModel()

void iimg::CBitmap::InitializeColorModel ( )
protected

◆ IsFormatSupported()

virtual bool iimg::CBitmap::IsFormatSupported ( PixelFormat  pixelFormat) const
overridevirtual

Get true if the pixel format is supported by the bitmap implementation.

Parameters
pixelFormatbitmap format.
See also
PixelFormat

Implements iimg::IBitmap.

◆ ResetData()

virtual bool iimg::CBitmap::ResetData ( CompatibilityMode  mode = CM_WITHOUT_REFS)
overridevirtual

Reset data to its default state.

Default implementation in istd::IChangeable does nothing.

Returns
true if the operation was successful, and false otherwise.

Reimplemented from i2d::CObject2dBase.

◆ ResetImage()

virtual void iimg::CBitmap::ResetImage ( )
overridevirtual

Reset this image.

After this operation image is set to initial state.

Implements iimg::IRasterImage.

◆ SetQImage()

bool iimg::CBitmap::SetQImage ( const QImage &  image)
protected

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