TXSLib : Class TImage

La classe TImage est un widget qui permet d'afficher une image selon des directives d'affichages permettant de visualiser tout ou partie de l'image avec ou sans transparence.


Cette classe d'objet est compatible avec son utllisation sur un afficheur LCD. Voir la rubrique : LCD 7789 avec Qt

Relations d'héritage

- Hérite de :
   - TWidget.

Exemples de "Mapping" d'une image

Ci-dessous un image d'exemple :



Pour les besoins du site Web, cette image est réduite. A l'orgine sa taille est de 600 pixels en largeur et 400 pixels en hauteur.


Selon les valeurs données aux propriétés :


 - Mapping
 - LeftOrigin
 - TopOrigin
 - WidthOrigin
 - HeightOrigin
 - LeftDestination
 - TopDestination
 - WidthDestination
 - HeightDestination


Les propriétés dont le suffixe est "Origin" correspondent aux coordonnées de l'image.

Les propriétés dont le suffixe est "Destination" correspondent aux coordonnées de la zone rectangulaire de l'objet TImage dans lequel le tracé sera effectué.

Les exemples suivants montrent le même objet TImage ou ont été appliqué les différents mode de mapping et de coordonnées. Dans ces exemples, l'objet TImage est dimensionné un peu plus grand que l'image, soit 680 pixels en largeur pour 500 pixels en hauteur.


Mapping = TXS::Image_Mapping_Normal

- Les coordonnées sont ignorées.




Mapping = TXS::Image_Mapping_Stretched

- Les coordonnées sont ignorées.




Mapping = TXS::Image_Mapping_Centered

- Les coordonnées sont ignorées.




Mapping = TXS::Image_Mapping_StretchedCentered

- Les coordonnées sont ignorées.




Mapping = TXS::Image_Mapping_Fill

- Les coordonnées sont ignorées.




Mapping = TXS::Image_Mapping_NormalAt

- LeftDestination = 100
- TopDestination = 150
- Les autres coordonnées sont ignorées.




Mapping = TXS::Image_Mapping_Mapped

- LeftDestination = 100
- TopDestination = 100
- WidthDestination = 300
- HeightDestination = 75
- Les autres coordonnées sont ignorées.




Mapping = TXS::Image_Mapping_StretchedMapped

- LeftDestination = 100
- TopDestination = 100
- WidthDestination = 300
- HeightDestination = 200
- Les autres coordonnées sont ignorées.




Mapping = TXS::Image_Mapping_StretchedMappedCentered

- LeftDestination = 200
- TopDestination = 200
- WidthDestination = 300
- HeightDestination = 100
- Les autres coordonnées sont ignorées.




Mapping = TXS::Image_Mapping_Partial

- LeftOrigin = 200
- TopOrigin = 0
- WidthOrigin = 100
- HeightOrigin = 350
- Les autres coordonnées sont ignorées.




Mapping = TXS::Image_Mapping_PartialAt

- LeftOrigin = 200
- TopOrigin = 0
- WidthOrigin = 100
- HeightOrigin = 350
- LeftDestination = 400
- TopDestination = 200
- Les autres coordonnées sont ignorées.




Mapping = TXS::Image_Mapping_PartialMapped

- LeftOrigin = 200
- TopOrigin = 180
- WidthOrigin = 300
- HeightOrigin = 50
- LeftDestination = 50
- TopDestination = 50
- WidthDestination = 300
- HeightDestination = 200



Quelques règles de "Mapping"

- Les modes de mapping suivant affichent toujours l'image en respectant ses dimensions (même si toute l'image ne peut être affichée) :

 - Image_Mapping_Normal
 - Image_Mapping_Centered
 - Image_Mapping_NormalAt

- Les modes de mapping suivant affichent toujours l'image en entier en respectant son ratio entre largeur et hauteur (L'image n'est pas déformée) :

 - Image_Mapping_Stretched
 - Image_Mapping_StretchedCentered
 - Image_Mapping_StretchedMapped
 - Image_Mapping_StretchedMappedCentered

- Les modes de mapping suivant affichent toujours l'image en entier en respectant son ratio entre largeur et hauteur (L'image n'est pas déformée), mais pour cela ils peuvent adapter une des 2 coordonées de largeur et hauteur de destination en la réduisant de manière à conserver le ratio d'aspect :

 - Image_Mapping_StretchedMapped
 - Image_Mapping_StretchedMappedCentered

- Les modes suivant sont libres (déformation, zone affichée, rectangle utilisé) :

 - Image_Mapping_Mapped
 - Image_Mapping_Partial
 - Image_Mapping_PartialAt
 - Image_Mapping_PartialMapped

- Le mode suivant dessine toute l'image dans la totalité du rectangle de l'objet TImage. L'image peut donc être déformée :

 - Image_Mapping_Fill

Fonctions publiques

TImage(QWidget *parent = nullptr)
voidvoid Copy(TImage* pTarget)
TImage* CreateCopy(QWidget *parent = nullptr)
voidbool Draw(QPainter* pPainter, const QRect& Rect)
QUuidGetTWidgetIdentifier()
QStringGetTWidgetIdentifierAsString()
QStringGetTWidgetName()
boolSetImage(const QString& strFileName)
boolSetImage(const QPixmap& Pixmap)

Propriétés

Propriétés Type Ecriture Lecture
HeightDestination int SetHeightDestination GetHeightDestination
HeightOrigin int SetHeightOrigin GetHeightOrigin
HighColorTransparency QColor SetHighColorTransparency GetHighColorTransparency
Image QPixmap SetImage GetImage
ImageFileName QString SetImageFileName GetImageFileName
ImageHeight int GetImageHeight
ImageWidth int GetImageWidth
LeftDestination int SetLeftDestination GetLeftDestination
LeftOrigin int SetLeftOrigin GetLeftOrigin
LowColorTransparency QColor SetLowColorTransparency GeLowColorTransparency
Mapping TXS::Image_Mapping SetMapping GetMapping
Quality TXS::Image_Quality SetQuality GetQuality
TopDestination int SetTopDestination GetTopDestination
TopOrigin int SetTopOrigin GetTopOrigin
TransparencyEnabled bool EnableTransparency IsTransparencyEnabled
WidthDestination int SetWidthDestination GetWidthDestination
WidthOrigin int SetWidthOrigin GetWWidthOrigin


TImage::TImage(QWidget *parent = nullptr)

Description : Contructeur. Instancie un objet de la classe TImage.


Paramètre : parent - type QWidget* - Pointeur vers un QWidget parent s'il existe. Ce paramètre est optionnel



void TImage::Copy(TImage* pTarget)

Description : Copie toutes les valeurs des propriétés de cet objet aux propriétés de l'objet TImage passé en paramètre.


Paramètre : pTarget - type TImage* - Pointeur vers un objet TImage vers lequel sont copiées les valeurs des propriétés de cet objet



TImage* TImage::CreateCopy(QWidget *parent = nullptr)

Description : Crée et retourne un nouvel objet de la classe TImage après avoir initialisé toutes ses propriétés aux valeurs de celles de l'objet utilisé pour créer le nouvel objet.


Paramètre : parent - type QWidget* - Pointeur vers un QWidget parent s'il existe. Ce paramètre est optionnel


Valeur de retour : Pointeur vers le nouvel objet créé.



void TImage::Draw(QPainter* pPainter, const QRect& Rect)

Description : Permet de tracer cet objet dans un rectangle dont les coordonnées sont passées en paramètres au moyen du QPainter passé en paramètre et créé par une classe héritant du QPaintDevice.


Cette méthode est essentiellement destinée à une utilisation pour tracer sur un LCD via les classes Classe CLCD7789 et Classe CLCD7789PaintDevice de la librairie cpp2835. Voir la rubrique : LCD 7789 avec Qt


Elle peut toutefois être utilisée pour tracer dans un objet d'une classe héritant de QPaintDevice, comme QImage ou QPixmap pour créer une image de l'objet sauvegardable dans un fichier image.


Sauf cas particuliers, cette méthode ne doit pas être utilisée pour tracer sur le moniteur sur lequel fonctionne l'application qui l'héberge. La mise à jour du tracé dans cette condition est contrôlée par l'application par surcharge de la méthode protégée "QWidget::paintEvent".


Paramètre : pPainter - type QPainter* - Pointeur vers un QPainter attaché au QPaintDevice dans lequel il faut tracer l'objet.

Paramètre : Rect - type const QRect& - Coordonnées du rectangle de tracé dans le QPaintDevice.



QUuid TImage::GetTWidgetIdentifier()

Description : Retourne un UUID pour cettte classe d'objets.


Valeur de retour : UUID de cette classe d'objets.



QString TImage::GetTWidgetIdentifierAsString()

Description : Retourne un UUID pour cettte classe d'objets.


Valeur de retour : UUID de cette classe d'objets sous forme de chaine de caractères. La valeur de l'UUID de cette est : 7005aa3c-3250-45df-95c2-4809da5ec82d



QString TImage::GetTWidgetName()

Description : Retourne le nom de la classe.


Valeur de retour : Nom de cette classe d'objets sous forme de chaine de caractères. La valeur pour cette class est : TImage



bool TImage::SetImage(const QString& strFileName)

Description : Charge une image à partir d'un fichier. Les formats suivants sont supportés :


Format Descrption
BMPWindows Bitmap
GIFGraphic Interchange Format
JPGJoint Photographic Experts Group
JPEGJoint Photographic Experts Group
PNGPortable Network Graphics
PBMPortable Bitmap
PGMPortable Graymap
PPMPortable Pixmap
XBMX11 Bitmap
XPMX11 Bitmap

Paramètre : strFileName - type QString& - Chemin et nom du fichier image à charger


Valeur de retour : true si l'image a été chargée avec succès.



bool TImage::SetImage(const QPixmap& Pixmap)

Description : Charge une image à partir d'un objet QPixmap.


Paramètre : Pixmap - type QPixmap& - Pixmap contenant l'image à charger


Valeur de retour : true si l'image a été chargée avec succès.



HeightDestination

Description : Largeur de destination du tracé de l'image.


Voir les rubriques : Exemples de "Mapping" d'une image et Quelques règles de "Mapping"


Type : int

Valeur par défaut : 10

Ecriture : void SetHeightDestination(const int& nValue);

Lecture : int GetHeightDestination();



HeightOrigin

Description : Hauteur de destination du tracé de l'image.


Voir les rubriques : Exemples de "Mapping" d'une image et Quelques règles de "Mapping"


Type : int

Valeur par défaut : 10

Ecriture : void SetHeightOrigin(const int& nValue);

Lecture : int GetHeightOrigin();



HighColorTransparency

Description : Définie une des bornes de transparence lorsque ce mode est actif.


Type : QColor

Valeur par défaut : QColor(0,0,0,255)

Ecriture : void SetHighColorTransparency(const QColor& Color);

Lecture : QColor GetHighColorTransparency();



Image

Description : Propriété en lecture seule. Retourne le QPixmap de l'image de l'objet TImage.


Type : QPixmap

Lecture : QPixmap GetImage()



ImageFileName

Description : Propriété en lecture seule. Retourne le nom de fichier de l'image de l'objet TImage. La valeur retournée sera une chaine vide si l'image a été chargée via la fonction SetImage(const QPixmap& Pixmap).


Type : QString

Lecture : QString GetImageFileName()



ImageHeight

Description : Propriété en lecture seule. Retourne la hauteur de l'image de l'objet TImage.


Type : int

Lecture : int GetImageHeight()



ImageWidth

Description : Propriété en lecture seule. Retourne la largeur de l'image de l'objet TImage.


Type : int

Lecture : int GetImageWidtht()



LeftDestination

Description : Coordonnée horizontale de destination du tracé de l'image.


Voir les rubriques : Exemples de "Mapping" d'une image et Quelques règles de "Mapping"


Type : int

Ecriture : void SetLeftDestination(const int& nValue);

Lecture : int GetLeftDestination()



LeftOrigin

Description : Coordonnée horizontale d'origine du tracé de l'image.


Voir les rubriques : Exemples de "Mapping" d'une image et Quelques règles de "Mapping"


Type : int

Ecriture : void SetLeftOrigin(const int& nValue);

Lecture : int GetLeftOrigin()



LowColorTransparency

Description : Définie une des bornes de transparence lorsque ce mode est actif.


Type : QColor

Valeur par défaut : QColor(255,255,255,255)

Ecriture : void SetLowColorTransparency(const QColor& Color);

Lecture : QColor GetLowColorTransparency();



Mapping

Description : Définie le mode de tracé de l'image dans le rectangle cible de l'objet TImage.


Voir les rubriques : Exemples de "Mapping" d'une image et Quelques règles de "Mapping"


Type : TXS::Image_Mapping

Valeur par défaut : TXS::Image_Mapping_StretchedCentered

Ecriture : void SetMapping(const TXS::Image_Mapping& Mapping);

Lecture : TXS::Image_Mapping GetMapping();



Quality

Description : Définie la qualité de tracé de l'image dans le rectangle cible de l'objet TImage.


Type : TXS::Image_Quality

Valeur par défaut : TXS::Image_Quality_High

Ecriture : void SetQuality(const TXS::Image_Quality& Quality);

Lecture : TXS::Image_Quality GetQuality();



TopDestination

Description : Coordonnée verticale de destination du tracé de l'image.


Voir les rubriques : Exemples de "Mapping" d'une image et Quelques règles de "Mapping"


Type : int

Ecriture : void SetTopDestination(const int& nValue);

Lecture : int GetTopDestination()



TopOrigin

Description : Coordonnée verticale d'origine du tracé de l'image.


Voir les rubriques : Exemples de "Mapping" d'une image et Quelques règles de "Mapping"


Type : int

Ecriture : void SetTopOrigin(const int& nValue);

Lecture : int GetTopOrigin()



TransparencyEnabled

Description : Active ou désactive le mode de tracé avec transparence.


Type : bool

Valeur par défaut : false

Ecriture : void EnableTransparency(const bool& Tf);

Lecture : bool IsTransparencyEnabled();



WidthDestination

Description : Largeur de destination du tracé de l'image.


Voir les rubriques : Exemples de "Mapping" d'une image et Quelques règles de "Mapping"


Type : int

Ecriture : void SetWidthDestination(const int& nValue);

Lecture : int GetWidthDestination()



WidthOrigin

Description : Largeur d'origine du tracé de l'image.


Voir les rubriques : Exemples de "Mapping" d'une image et Quelques règles de "Mapping"


Type : int

Ecriture : void SetWidthOrigin(const int& nValue);

Lecture : int GetWidthOrigin()