I. Introduction▲
GDI et GDI+ sont des bibliothèques graphiques.
En d'autres termes ce sont des fonctions que l'on peut appeler depuis nos programmes en ayant pris soin auparavant de les déclarer : ce sont les fameuses API.
La bibliothèque GDI est intégrée à toutes les versions de Windows, elle contient des fonctions de dessins basiques et ne sait gérer que le format Bitmap (BMP).
Pour pallier le manque de fonctionnalités de la bibliothèque GDI, Microsoft a développé une autre bibliothèque : GDI+ (ou GdiPlus).
Cette seconde bibliothèque est beaucoup plus puissante et reconnaît en autre les formats Jpeg/Png/Gif et les données Exif intégrées aux images Jpeg, notamment par les appareils photos numériques.
La classe clGdiPlus, dont cet article est la documentation, encapsule ces API pour faciliter leur utilisation.
II. Remarques préalables▲
II-A. Remarques▲
- l'unité utilisée par cette classe est le pixel ;
- l'origine (0,0) d'une image GDI+ est en haut à gauche ;
- dans tous les exemples de ce document, je nomme oGdi l'instance de la classe et Image0 le contrôle image ;
- les paramètres optionnels sont notés : [NomduParamètre] = ValeurParDéfaut ;
- si non mentionné, les fonctions retournent False (Faux) en cas d'échec, ou True (Vrai) si succès.
II-B. Prérequis▲
Il est nécessaire de posséder la bibliothèque GDI+ de Microsoft.
Cette bibliothèque est incorporée à Windows à partir de XP.
Si besoin, la dernière version de la bibliothèque est en téléchargement : Lien vers la libraire en téléchargement sur Microsoft.com
Le fichier gdiplus.dll doit alors être placé dans le répertoire de l'application.
Le module de classe suivant doit être importé dans le projet VBA (menu Fichier => Importer un fichier) : Téléchargez le module de classe clGdiplus.
II-C. Compatibilité avec Excel, Word et PowerPoint▲
Par défaut, le dessin se fait sur un formulaire Access.
Pour utiliser la classe clGdiplus avec Excel, Word ou PowerPoint, recherchez la constante de compilation AppName :
#Const AppName =
"A"
Et remplacez la valeur A par l'initiale de l'application hôte :
- A pour Access ;
- W pour Word ;
- E pour Excel ;
- P pour Powerpoint.
Pour Word, Excel et Powerpoint, le dessin se fait alors sur un UserForm.
La référence à Microsoft Forms doit être activée.
Elle est activée automatiquement à la création d'un UserForm.
II-D. Long ou Single ?▲
Par défaut, les coordonnées sont de type Long (entiers long).
Pour plus de précision (mais des temps de traitements un peu plus longs), il est possible d'utiliser des coordonnées de type Single (virgule flottante) en modifiant la constante de compilation UseSingle :
#Const UseSingle = True
Pour obtenir de bons résultats avec des Single, définissez la propriété SmoothingMode à GdipSmoothingAntialias ou GdipSmoothingHighQuality.
Sinon par défaut l’effet de lissage n’est pas présent.
II-E. Image principale et images secondaires▲
Un objet de type clGdiplus correspond à une image.
Toute méthode ou propriété (transformation, dessin…) de cet objet s'applique à cette image.
C'est ce que j'appelle l'image principale.
Il est possible de créer des sous-images à l'aide des fonctions Img*.
C'est ce que j'appelle les images secondaires.
Ces images sont également des objets de type clGdiplus et sont « attachées » à l'image principale.
Elles peuvent être modifiées indépendamment de l'image principale.
Lors de la suppression d'une image principale, les images secondaires qui lui sont liées sont supprimées.
Une image secondaire étant un objet clGdiplus, elle est également une image principale et peut contenir ses propres images secondaires.
III. Création et de sauvegarde de l'image principale▲
III-A. LoadFile▲
Ouvre un fichier.
Charge le fichier en mémoire.
On peut ensuite accéder aux données Exif ou modifier l'image.
La fonction retourne Vrai si le fichier a été ouvert avec succès.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pFile | String | Chemin complet du fichier image |
[pThumbNail]=False | Boolean | Mettre à True pour ouvrir la miniature Exif |
[pIcon]=GdipNoIcon | EGdipIconType |
L'icône est celle de l'application associée au type du fichier chargé, c'est-à-dire l'icône que l'on voit dans l'explorateur de fichier Windows. |
Si le fichier chargé est un métafichier (wmf ou emf), il est converti en mémoire au format png, sauf si la valeur de la propriété ConvertMetaFile est False.
III-B. CloseImage▲
Ferme l'image.
L'image peut être un fichier chargé avec OpenFile, un bitmap créé avec CreateBitmap…
Pensez à refermer l'image lorsqu'elle n'est plus utilisée pour libérer de la mémoire.
Lorsque l'objet clGdiplus est libéré, l'image est automatiquement libérée.
III-C. CreateBitmap▲
Création d'une image vierge.
L'image est créée en mémoire.
Elle est de format Bitmap et 32bpp (donc avec transparence).
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pWidth | Long | Largeur de l'image en pixels |
pHeight | Long | Hauteur de l'image en pixels |
[pResolution] = 96 | Single | Résolution de l'image en points par pouce (96 par défaut) |
III-D. CreateBitmapForControl▲
Création d'une image vierge formatée pour un contrôle.
Elle a la taille du contrôle ou du formulaire donné en paramètre.
Le format de l'image (résolution, profondeur de pixel…) est déterminé par le formulaire pour une rapidité de dessin accrue.
L'image est créée en mémoire.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pObject | Object | Contrôle ou formulaire qui détermine la taille et le format de l'image. |
[pMakeDefaultImg]=False | Boolean | Si Vrai, l’objet devient l’objet par défaut (cf. propriété ImgObject) |
III-E. CreateBitmapForImg▲
Création d'une image vierge formatée pour une autre image.
Le format de l'image (résolution, profondeur de pixel…) est déterminé par l'image (objet clGdiplus) donnée en paramètre.
L'image sera dessinée plus rapidement sur une image de même format.
L'image est créée en mémoire.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pImg | Variant | Image qui détermine le format de la nouvelle image. Object clGdiplus ou nom d'une image secondaire |
pWidth | Long | Largeur de l'image en pixels |
pHeight | Long | Hauteur de l'image en pixels |
III-F. CreateBitmapForDC▲
Création d'une image vierge.
Le format de l'image (résolution, profondeur de pixel…) est déterminé par le contexte d'affichage GDI donné en paramètre.
L'image sera dessinée plus rapidement sur un contexte d'affichage de même format.
L'image est créée en mémoire.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pDC | Long ou LongLong | Contexte d'affichage qui détermine le format de la nouvelle image. |
pWidth | Long | Largeur de l'image en pixels |
pHeight | Long | Hauteur de l'image en pixels |
III-G. CreateBitmapForHwnd▲
Création d'une image vierge.
Le format de l'image (résolution, profondeur de pixel…) est déterminé par la fenêtre donnée en paramètre.
L'image sera dessinée plus rapidement sur une fenêtre de même format.
L'image est créée en mémoire.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pHwnd | Long ou LongLong | Fenêtre qui détermine le format de la nouvelle image. |
pWidth | Long | Largeur de l'image en pixels |
pHeight | Long | Hauteur de l'image en pixels |
III-H. SaveFile▲
Sauvegarde l'image dans un fichier.
La fonction retourne Vrai si le fichier a pu être sauvegardé.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pFile | String | Chemin du fichier de sauvegarde. Il n'est pas possible d'écraser le fichier courant, sauf en définissant la propriété LoadAndClone. |
[pFormat] | EGdipImageFormatSave | Format du fichier : JPG, GIF, BMP, PNG, TIFF, EMF. Par défaut le format est déterminé en fonction de l'extension du fichier. |
[pQuality]=-1 | Integer |
Qualité pour le format JPG (0-100). Ou type d'EMF pour le format EMF
|
III-I. SaveTransformFile▲
Sauvegarde l'image dans un fichier avec transformation.
L'image n'est pas altérée par une recompression si elle est au format JPG et si ses dimensions sont toutes deux multiples de 16.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pFile | String | Chemin du fichier de sauvegarde. Il n'est pas possible d'écraser le fichier courant, sauf en définissant la propriété LoadAndClone. |
pTransformation | EGdipJpegTransform | Transformation à appliquer |
Exemple :
If
oGdi.LoadFile
(
"C:\MonFichier.jpg"
) then
If
oGdi.SaveTransformFile
(
"C:\MonFichierAvecRotation.jpg"
,EncoderValueTransformRotate90) then
MsgBox
"Image tournée et sauvegardée"
End
If
End
If
III-J. SavePixels▲
Retourne un tableau de pixels avec les couleurs ARGB
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pPixels | Tableau de Byte | Tableau de points ARGB |
La fonction retourne un tableau de pixels ARGB.
A = Alpha = Transparence
R = Red = Rouge
G = Green = Vert
B = Blue = Bleu
Les valeurs sont comprises entre 0 et 255.
Exemple :
' Tableau pour recevoir les pixels
Dim
lPixels
(
) As
Byte
' Compteurs
Dim
lCptX As
Long
, lCptY As
Long
' Lecture des pixels dans le tableau
lPixels =
oGdi.SavePixels
' Boucle sur les pixels
For
lCptX =
LBound
(
lPixels
(
), 2
) To
UBound
(
lPixels
(
), 2
)
For
lCptY =
LBound
(
lPixels
(
), 3
) To
UBound
(
lPixels
(
), 3
)
' Composante bleue = lPixels(1, lCptX, lCptY)
' Composante verte = lPixels(2, lCptX, lCptY)
' Composante rouge = lPixels(3, lCptX, lCptY)
' Composante alpha = lPixels(4, lCptX, lCptY)
Next
Next
III-K. LoadPixels▲
Modifie l'image à partir un tableau de pixels avec les couleurs ARGB
L'image précédente est conservée et seuls les pixels d'indices demandés sont modifiés.
Pour créer une nouvelle image, fermer d'abord la précédente avec CloseImage.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pPixels | Tableau de Byte | Tableau de points ARGB |
Exemple :
' Tableau pour recevoir les pixels
Dim
lPixels
(
) As
Byte
' Compteurs
Dim
lCptX As
Long
, lCptY As
Long
' Lecture des pixels de l'image
lPixels =
oGdi.SavePixels
' On boucle sur les pixels
For
lCptX =
LBound
(
lPixels
(
), 2
) To
UBound
(
lPixels
(
), 2
)
For
lCptY =
LBound
(
lPixels
(
), 3
) To
UBound
(
lPixels
(
), 3
)
' On ne garde que la couleur rouge en mettant les deux autres composantes à zéro
' Annule la composante bleue
lPixels
(
1
, lCptX, lCptY) =
0
' Annule la composante verte
lPixels
(
2
, lCptX, lCptY) =
0
' Composante bleue = lPixels(1, lCptX, lCptY)
' Composante verte = lPixels(2, lCptX, lCptY)
' Composante rouge = lPixels(3, lCptX, lCptY)
' Composante alpha = lPixels(4, lCptX, lCptY)
Next
Next
' On réinjecte les couleurs dans l'image
oGdi.LoadPixels
lPixels
III-L. LoadBitmap▲
Crée l'image à partir d'un bitmap Gdiplus.
Voir SaveBitmap pour un exemple d'utilisation.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pBitmap | Long ou LongLong | Identifiant d'un bitmap GdiPlus |
[pClone] = Vrai | Boolean | Si Vrai, clone le bitmap source. Il faut donc ensuite supprimer ce bitmap source si nécessaire. |
III-M. LoadPictureMask▲
Crée l'image à partir d'un bitmap et d'un mask gdi32
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pPicture | Long ou LongLong | Identifiant d'un bitmap gdi32 |
[pMask] = 0 | Long ou LongLong | Identifiant d'un masque gdi32, optionnel. |
[pBackColor] = vbWhite | Long | Couleur de fond. |
[pBackAlpha] = 0 | Long | Transparence du fond, entre 0 et 255. |
[pDelete] = True | Boolean | Supprime ensuite les bitmaps si True. |
III-N. SaveBitmap▲
Sauvegarde l'image dans un bitmap Gdiplus
Paramètre :
Paramètre | Type | Explication |
---|---|---|
[pClone] = Faux | Boolean | Si Vrai, clone le bitmap. |
La fonction retourne un bitmap Gdiplus.
Exemple :
' On ne clone pas l'image lors de l'appel à SaveBitmap.
' Par compte on clone l'image lors de l'appel à LoadBitmap.
' Ainsi on obtient dans la classe oGdiOut un clone de l'image issue de oGdiIn
' Si on avait cloné deux fois l'image, l'image intermédiaire ne serait jamais libérée
' (=fuite de mémoire)
' Si on n'avait pas du tout cloné l'image, chaque classe pointerait vers la même image en mémoire
' (=risque de libérer l'image dans une classe alors que l'autre voudrait encore l'utiliser)
lReturn =
oGdiOut.LoadBitmap
(
oGdiIn.SaveBitmap
(
False
), True
)
III-O. LoadArray▲
Définit l'image à partir d'un tableau de byte
Voir l'application Inclure des images jpeg dans un objet OLE pour un exemple d'utilisation.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pArray | Tableau de Byte | Données de l'image. Équivalent au contenu d'un fichier image (bmp, jpg, gif…) |
[pAttachment]=False | Boolean | Mettre à Vrai si les données proviennent d'un champ pièce-jointe (Access >= 2007). |
Si le fichier chargé est un métafile (wmf ou emf), il est converti en mémoire au format png, sauf si la valeur de la propriété ConvertMetaFile est False.
Exemple :
' Timages est le nom de la table
' data est le champ pièce-jointe
' id est un champ texte identifiant de l'image
oGdi.LoadArray
DLookup
(
"data.filedata"
, "Timages"
, "id=""btnGIF"""
), True
III-P. SaveArray▲
Sauvegarde l'image dans un tableau de byte
Voir l'application Inclure des images jpeg dans un objet OLE pour un exemple d'utilisation.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pArray | Tableau de Byte | Données de l'image. |
[pFormat]=gdipFormatSaveArrayJPEG | EGdipImageFormatSaveArray | Format du fichier : JPG, GIF, BMP, PNG, TIF. |
[pQuality]=-1 | Integer | Qualité Jpeg (0-100) Ne spécifiez pas ce paramètre pour garder la qualité de l'image d'origine. |
La fonction retourne un tableau de Byte contenant les données brutes de l'image au format demandé.
III-Q. LoadControl▲
Création de l'image à partir de l'image contenue dans un contrôle (ou formulaire ou UserForm)
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pCtrl | Object | Contrôle, formulaire ou UserForm contenant une image. |
III-R. SaveIPictureDisp▲
Renvoie l'image dans un objet IPictureDisp
Cet objet peut être utilisé pour une image du ruban par exemple.
III-S. ConvertForImg▲
Converti l'image dans le même format qu'une autre image.
Le dessin d'une image sur l'autre sera alors plus rapide.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pImg | Variant | Image de référence. Object clGdiplus ou nom d'une image secondaire. |
III-T. IconBackColor▲
Couleur de fond des icônes.
Type Long en lecture / écriture.
S'applique à la fonction de chargement d'image : LoadFile.
III-U. LoadAndClone▲
Chargement d'un fichier sans verrouillage.
Type Boolean en lecture / écriture.
Au chargement d'une image avec LoadFile, si LoadAndClone est Vrai alors l'image est clonée en mémoire afin de libérer le fichier.
Pour les images de liste d'images (crées avec les fonctions ImgNew*), cette propriété est Vrai par défaut.
IV. Restitution de l'image principale à l'écran▲
IV-A. Repaint▲
Injecte l'image dans un contrôle ou un formulaire.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
[pObject] | Object |
Contrôle ou formulaire dans lequel est injectée l'image. Par défaut celui défini par ImgObject. |
[pResizeBefore]=False | Boolean | Si Vrai, redimensionne l'image au préalable. |
[pResizeAntialise]=False | Boolean | Antialiasing lors du redimensionnement. |
[pUseEMF]=False | Boolean | Pour ACCESS uniquement : utilisation du type d'image EMF. À tester si besoin pour améliorer la qualité de l'image dessinée. |
[pBackgroundColor] | Long | Pour un UserForm uniquement : défini la couleur de remplacement des zones transparente. |
oGdi.Repaint
Me.Image0
, True
, True
IV-B. RepaintNoFormRepaint▲
Injecte l'image dans un contrôle ou formulaire, mais ne la dessine que temporairement.
Cette fonction peut être utilisée pour réduire les scintillements à l'écran.
Il peut y avoir des légers décalages d'un ou deux pixels, qu'on peut essayer de corriger avec la fonction RepaintFastSetCorrection et/ou en retirant les bordures de l'image.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
[pObject] | Object |
Contrôle ou formulaire dans lequel est injectée l'image. Par défaut celui défini par ImgObject. |
[pResizeBefore]=False | Boolean | Si Vrai, redimensionne l'image avant |
[pResizeAntialise]=False | Boolean | Antialiasing lors du redimensionnement |
[pUseEMF]=False | Boolean | Pour ACCESS uniquement : Utilisation du type d'image EMF. À tester si besoin pour améliorer la qualité de l'image dessinée. |
[pBackgroundColor] | Long | Pour un UserForm uniquement : défini la couleur de remplacement des zones transparente. |
IV-C. RepaintFast▲
Dessine directement sur le formulaire.
L'affichage est plus rapide mais temporaire.
Il peut y avoir des légers décalages d'un ou deux pixels, qu'on peut essayer de corriger avec la fonction RepaintFastSetCorrection et/ou en retirant les bordures de l'image.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
[pObject] | Object |
Contrôle ou formulaire déterminant l'emplacement de l'image Par défaut celui défini par ImgObject. |
[pTranspColor] = -1 | Long | Couleur à ne pas dessiner. |
[pPercent] = 255 | Integer | Transparence (0 à 255). |
[pAntialiase] = Faux | Boolean | Lisse l'image si Vrai. |
[phDc] = 0 | Long ou LongLong | Handle d'un device contexte si connu. |
[phWnd] = 0 | Long ou LongLong | Handle d'une fenêtre si connu. |
IV-D. RepaintFastSetCorrection▲
Corrections pour la fonction RepaintFast.
*Dest pour correction sur le formulaire.
*Src pour correction sur l'image dessinée.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pLeftDest, pLeftSrc | Long ou Single | Correction à gauche |
pTopDest, pTopSrc | Long ou Single | Correction à droite |
pWidthDest, pWidthSrc | Long ou Single | Correction de largeur |
pHeightDest, pHeightSrc | Long ou Single | Correction de hauteur |
IV-E. RepaintFastSetClipControl▲
Définit l'emplacement à redessiner avec la fonction RepaintFast.
Permet de placer des contrôles sur l’image et de ne pas dessiner par-dessus si on utilise la fonction RepaintFast (ou RepaintNoFormRepaint).
Il est possible de combiner plusieurs contrôles en appelant plusieurs fois la fonction.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pCtrl | Contrôle | Contrôle dont l'emplacement est à inclure ou exclure |
[pInclude] = True | Boolean | Si Vrai, le contrôle spécifié délimite un rectangle qui sera redessiné à l'appel de la fonction RepaintFast. Si Faux, le contrôle spécifié délimite un rectangle qui ne sera pas redessiné. |
[pCorrectLeft] = 0 | Long ou Single | Correction à gauche en pixels |
[pCorrectTop] = 0 | Long ou Single | Correction en haut en pixels |
[pCorrectRight] = 0 | Long ou Single | Correction à droite en pixels |
[pCorrectBottom] = 0 | Long ou Single | Correction en bas en pixels |
IV-F. RepaintFastSetClipRectangle▲
Définit l'emplacement à redessiner avec la fonction RepaintFast.
Permet d'accélérer le dessin en ne dessinant qu'une portion de l'image.
Il est possible de combiner plusieurs rectangles en appelant plusieurs fois la fonction.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pX1, pY1, pX2, pY2 | Long ou Single | Coordonnées du rectangle à dessiner. En pixels par rapport à l'image principale. |
[pInclude] = True | Boolean | Si Vrai, le rectangle sera redessiné à l'appel de la fonction RepaintFast. Si Faux, le rectangle ne sera pas redessiné. |
[pCorrectLeft] = 0 | Long ou Single | Correction à gauche en pixels |
[pCorrectTop] = 0 | Long ou Single | Correction en haut en pixels |
[pCorrectRight] = 0 | Long ou Single | Correction à droite en pixels |
[pCorrectBottom] = 0 | Long ou Single | Correction en bas en pixels |
IV-G. RepaintFastSetClipRegion▲
Définit le rectangle entourant une région comme l'emplacement à redessiner avec la fonction RepaintFast.
Permet d'accélérer le dessin en ne dessinant qu'une portion de l'image.
Il est possible de combiner plusieurs rectangles en appelant plusieurs fois la fonction.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pRegion | String | Nom de la région à dessiner. |
[pInclude] = True | Boolean | Si Vrai, le rectangle sera redessiné à l'appel de la fonction RepaintFast. Si Faux, le rectangle ne sera pas redessiné. |
[pCorrectLeft] = 0 | Long ou Single | Correction à gauche en pixels |
[pCorrectTop] = 0 | Long ou Single | Correction en haut en pixels |
[pCorrectRight] = 0 | Long ou Single | Correction à droite en pixels |
[pCorrectBottom] = 0 | Long ou Single | Correction en bas en pixels |
IV-H. RepaintFastResetClip▲
Réinitialise l'emplacement à redessiner avec la fonction RepaintFast.
Après l'appel de cette fonction, l'image entière est à nouveau dessinée.
IV-I. RepaintFastTransparency▲
Transparence pour RepaintFast
Type Boolean en lecture / écriture.
Faux par défaut.
Si RepaintFastTransparency est Faux, RepaintFast remplace les pixels.
Sinon ils sont dessinés par-dessus l'image déjà affichée.
IV-J. RepaintFastResetCalc▲
Réinitialise les calculs pour RepaintFast.
Type Boolean en lecture / écriture.
Faux par défaut.
La fonction RepaintFast conserve les calculs de positionnement pour optimiser le temps d'affichage.
Exécuter RepaintFastResetCalc réinitialise ces calculs dans le cas par exemple d'une modification de taille de contrôle ou de positionnement / alignement de l'image dans le contrôle.
Une fois l’image redessinée, RepaintFastResetCalc est remis à Faux automatiquement.
V. Événements▲
Ces événements sont déclenchés sur action sur l’objet défini par la propriété ImgObject.
V-A. ImgMouseDown▲
Sur souris appuyée.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pRegion | String | Région sous le curseur de la souris. |
Button | Integer | Bouton appuyé. Idem au paramètre Button des événements de souris standards. |
Shift | Integer | Touches spéciales appuyées. Idem au paramètre Shift des événements de souris standards. |
X | Single | Position horizontale de la souris sur l’image en pixel. |
Y | Single | Position verticale de la souris sur l’image en pixel. |
V-B. ImgMouseUp▲
Sur souris relâchée.
Même paramètres que ImgMouseDown.
V-C. ImgMouseMove▲
Sur souris déplacée.
Même paramètres que ImgMouseDown.
V-D. ImgMouseDblClick▲
Sur double-clic.
Même paramètres que ImgMouseDown.
VI. Modification de l'image principale▲
VI-A. Clear▲
Réinitialise l'image principale d'une couleur unie.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
[pColor] = vbBlack | Long | Couleur de remplissage |
[pAlpha] = 255 | Integer | Transparence (0 --> 255) |
VI-B. FillColor▲
Remplit l'image principale d'une couleur.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pColor | Long | Couleur de remplissage |
[pColorGradient]=-1 | Long | Couleur pour dégradé Le dégradé va de la couleur pColor vers la couleur pColorGradient |
[pGradientVert] = Faux | Boolean | Mettre à Vrai pour un dégradé vertical |
[pX1] [pY1] [pX2] [pY2] |
Long ou Single | Coordonnées du rectangle à remplir, ou toute l'image. |
[pAlpha] = 255 | Integer | Transparence (0 --> 255) |
Exemple :
lReturn =
oGdi.FillColor
(
vbWhite
, , , oGdi.ImageWidth
/
2
, oGdi.ImageHeight
/
2
)
VI-C. ReplaceColor▲
Remplace une couleur de l'image par une autre.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pOldColor | Long | Ancienne couleur |
pNewColor | Long | Nouvelle couleur |
[pOldAlpha] = -1 | Long | Ancienne transparence (0 --> 255). Si paramètre omis ou égal à -1, tous les points de transparence 0 à 255 sont traités |
[pNewAlpha] = -1 | Long | Nouvelle transparence (0 --> 255). Si paramètre omis ou égal à -1, la transparence n'est pas modifiée |
[pX1] [pY1] [pX2] [pY2] |
Long ou Single | Coordonnées du rectangle à traiter ou toute l'image si non précisé. |
Exemple :
lReturn =
oGdi.ReplaceColor
(
vbWhite
, Me.Section
(
acDetail).BackColor
)
VI-D. ApplyColorMatrix▲
Applique une matrice de couleurs à l'image.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pRed, pGreen, pBlue, pAlpha | Variant = Tableaux de single de dimension 5 | 1re à 4e valeur : Multiplicateurs des composantes rouge, vert, bleu et alpha 5e valeur : Valeur à ajouter Les valeurs doivent être comprises entre -1 et 1 |
[pX1] [pY1] [pX2] [pY2] |
Long ou Single | Coordonnées du rectangle à traiter, ou toute l'image. |
Exemple :
oGdi.ApplyColorMatrix
Array
(
0
.222
, 0
.707
, 0
.071
, 0
, 0
), _
Array
(
0
.222
, 0
.707
, 0
.071
, 0
, 0
), _
Array
(
0
.222
, 0
.707
, 0
.071
, 0
, 0
), _
Array
(
0
, 0
, 0
, 1
, 0
)
VI-E. Resize▲
Redimensionne l'image principale.
Si un des paramètres de dimension (pWidth ou pHeight) est omis, il est calculé en fonction de l'autre dimension en conservant le ratio de l'image.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
[pWidth]=0 | Long | Nouvelle largeur |
[pHeight]=0 | Long | Nouvelle hauteur |
[pKeepExifData] = Faux | Boolean | Si Vrai alors les données Exif sont réinjectées dans l'image après redimensionnement |
Exemple :
lReturn =
oGdi.Resize
(
oGdi.ImageWidth
/
10
, oGdi.ImageHeight
/
10
)
VI-F. ScaleI▲
Redimensionne l'image.
Les paramètres sont des multiplicateurs.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
[psX]=1 | Single | Facteur de redimensionnement pour la largeur |
[psY]=0 | Long | Facteur de redimensionnement pour la hauteur |
[pKeepExifData] = Faux | Boolean | Si Vrai alors les données Exif sont réinjectées dans l'image après redimensionnement |
Exemple :
lReturn =
oGdi.ScaleI
(
0
.1
, 0
.1
)
VI-G. Crop▲
Découpe l'image.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
[pX1] [pY1] [pX2] [pY2] |
Long ou Single | Coordonnées du rectangle à conserver. |
[pKeepExifData] = Faux | Boolean | Si Vrai alors les données Exif sont réinjectées dans l'image après le découpage |
Exemple :
lReturn =
oGdi.Crop
(
0
, 0
, oGdi.ImageWidth
/
2
, oGdi.ImageHeight
/
2
)
VI-H. Rotate▲
Rotation de l'image principale.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pAngle | Single | Angle de rotation en degrés |
[pKeepExifData] = Faux | Boolean | Si Vrai alors les données Exif sont réinjectées dans l'image après la rotation |
Exemple :
lReturn =
oGdi.Rotate
(
30
)
VI-I. RotateFlip▲
Rotation / Miroir de l'image.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pType | EGdipRotateFlip | Type de transformation |
[pKeepExifData] = Faux | Boolean | Si Vrai alors les données Exif sont réinjectées dans l'image après la rotation et/ou le miroir |
Exemple :
lReturn =
oGdi.RotateFlip
(
RotateNoneFlipX)
VII. Dessin (formes, textes, images)▲
Le dessin tient compte des transformations définies par les fonctions World*.
VII-A. DrawPixel▲
Dessine un pixel.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pX | Long ou Single | Position horizontale du pixel |
pY ou Single | Long | Position verticale du pixel |
pColor | Long | Couleur du pixel |
[pAlpha] = 255 | Integer | Transparence du pixel (0 --> 255) |
Exemple :
lReturn =
oGdi.DrawPixel
(
oGdi.ImageWidth
/
2
,oGdi.ImageHeight
/
2
, vbRed
)
VII-B. DrawLine▲
Dessine une ligne.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pX1, pY1 | Long ou Single | Position du premier point |
pX2, pY2 | Long ou Single | Position du deuxième point |
[pPenColor] = vbBlack | Long | Couleur de la ligne |
[pPenWidth] = 1 | Long ou Single | Épaisseur de la ligne |
[pDash] = GdipDashSOLID | EGdipDashStyle | Style des pointillés |
[pAlpha] = 255 | Integer | Transparence du trait (0 --> 255) |
[pRegion] = "" | String | Nom de la région à créer pour cette ligne. |
Exemple :
lReturn =
oGdi.DrawLine
(
0
, 0
, oGdi.ImageWidth
, oGdi.ImageHeight
, vbBlue
, 4
)
VII-C. DrawRectangle▲
Dessine un rectangle.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pX1, pY1, pX2, pY2 | Long ou Single | Coordonnées du rectangle |
[pBackColor] = -1 | Long | Couleur de remplissage Laisser -1 pour un rectangle transparent. |
[pPenColor] = vbBlack | Long | Couleur de la ligne |
[pPenWidth] = 1 | Long ou Single | Epaisseur de la ligne |
[pDash] = GdipDashSOLID | EGdipDashStyle | Style des pointillés |
[pAlpha] = 255 | Integer | Transparence du trait (0 --> 255) |
[pRegion] = "" | String | Nom de la région à créer avec les mêmes coordonnées |
Exemple :
' pBackColor = -1 signifie qu'on dessine uniquement la bordure sans le fond
' pPenColor = vbBlue pour dessiner en bleu
lReturn =
oGdi.DrawRectangle
(
Rnd
*
oGdi.ImageWidth
, Rnd
*
oGdi.ImageHeight
, _
Rnd
*
oGdi.ImageWidth
, Rnd
*
oGdi.ImageHeight
, _
-
1
, vbBlue
, 4
)
VII-D. DrawRoundRectangle▲
Dessine un rectangle avec coins arrondis.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pX1, pY1, pX2, pY2 | Long ou Single | Coordonnées du rectangle |
pX3, pY3 | Long ou Single | Taille de l'ellipse utilisée pour les coins |
[pBackColor] = -1 | Long | Couleur de remplissage Laisser -1 pour un rectangle transparent. |
[pPenColor] = vbBlack | Long | Couleur de la ligne |
[pPenWidth] = 1 | Long ou Single | Epaisseur de la ligne |
[pDash] = GdipDashSOLID | EGdipDashStyle | Style des pointillés |
[pAlpha] = 255 | Integer | Transparence du trait (0 --> 255) |
[pRegion] = "" | String | Nom de la région à créer avec les mêmes coordonnées |
VII-E. DrawEllipse▲
Dessine une ellipse.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pX1, pY1, pX2, pY2 | Long ou Single | Position de l'ellipse |
[pType] = TypeEllipseRectangle | EGdipTypeEllipse | Type de positionnement Si pType = TypeEllipseRectangle = 0 : On passe un rectangle en paramètre, l'ellipse remplit ce rectangle pX1, pY1 : Point Haut-Gauche du rectangle pX2, pY2 : Point Bas-Droite du rectangle Si pType = TypeEllipseCenter = 1 : on passe le centre et les rayons de l'ellipse en paramètre pX1, pY1 : Centre de l'ellipse pX2 : Rayon horizontal pY2 : Rayon vertical |
[pBackColor] = -1 | Long | Couleur de remplissage Laisser -1 pour une ellipse transparente |
[pPenColor] = vbBlack | Long | Couleur de la ligne |
[pPenWidth] = 1 | Long ou Single | Épaisseur de la ligne |
[pDash] = GdipDashSOLID | EGdipDashStyle | Style des pointillés |
[pAlpha] = 255 | Integer | Transparence du trait (0 --> 255) |
[pStartAngle] = Missing | Variant/Single | Angle de démarrage d'un arc en degré |
[pSweepAngle] = Missing | Variant/Single | Angle de balayage d'un arc en degré |
[pRegion] = "" | String | Nom de la région à créer avec les mêmes coordonnées |
Exemple :
' Dessin d'une ellipse rouge d'épaisseur 2, centrée au milieu du contrôle, remplie de vert,
' et de rayons 1/5è de la taille du contrôle
lReturn =
oGdi.DrawEllipse
_
(
oGdi.ImageWidth
/
2
, oGdi.ImageHeight
/
2
, _
oGdi.ImageWidth
/
5
, oGdi.ImageHeight
/
5
, 1
, _
vbGreen
, vbRed
, 2
)
VII-F. DrawPolygon▲
Dessine un polygone.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pPoints | Variant | Tableau de points (Long ou Single) formant le polygone : Array(X1, Y1, X2, Y2, X3, Y3…) |
[pBackColor] = -1 | Long | Couleur de remplissage Laisser -1 pour un polygone transparent. |
[pPenColor] = vbBlack | Long | Couleur de la ligne |
[pPenWidth] = 1 | Long ou Single | Epaisseur de la ligne |
[pDash] = GdipDashSOLID | EGdipDashStyle | Style des pointillés |
[pAlpha] = 255 | Integer | Transparence du trait (0 --> 255) |
[pRegion] = "" | String | Nom de la région à créer avec les mêmes coordonnées |
VII-G. DrawPathClose▲
Fermeture des polygones.
Type Boolean en lecture / écriture.
Si Vrai les polygones (DrawPolygon et CreateRegionPolygon) sont fermés (ajout d’un point de fin égal au point de début).
VII-H. DrawCurve▲
Dessine une ou plusieurs courbes de Bézier.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pPoints | Variant | Tableau de points (Long ou Single) formant la courbe : Array(X1, Y1, X2, Y2, X3, Y3…). Nécessite 1 point de départ + 3 points par courbe. |
[pBackColor] = -1 | Long | Couleur de remplissage Laisser -1 pour une courbe transparente. |
[pPenColor] = vbBlack | Long | Couleur de la ligne |
[pPenWidth] = 1 | Long ou Single | Epaisseur de la ligne |
[pDash] = GdipDashSOLID | EGdipDashStyle | Style des pointillés |
[pAlpha] = 255 | Integer | Transparence du trait (0 --> 255) |
[pRegion] = "" | String | Nom de la région à créer avec les mêmes coordonnées |
VII-I. DrawCardinal▲
Dessine une ou plusieurs courbes cardinales.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pPoints | Variant | Tableau de points (Long ou Single) formant la courbe : Array(X1, Y1, X2, Y2, X3, Y3…) |
[pTension] = 0.5 | single | Tension de la courbe |
[pBackColor] = -1 | Long | Couleur de remplissage Laisser -1 pour une courbe transparente. |
[pPenColor] = vbBlack | Long | Couleur de la ligne |
[pPenWidth] = 1 | Long ou Single | Epaisseur de la ligne |
[pDash] = GdipDashSOLID | EGdipDashStyle | Style des pointillés |
[pAlpha] = 255 | Integer | Transparence du trait (0 --> 255) |
[pRegion] = "" | String | Nom de la région à créer avec les mêmes coordonnées |
VII-J. DrawSVG▲
Dessine un chemin SVG.
Attention : toute la norme SVG n'est pas implémentée.
M : point de départ.
L : ligne.
V : ligne verticale.
H : ligne horizontale.
C : courbe de Bézier (1 point de contrôle).
Q : courbe de Bézier quadratique (2 points de contrôle).
A : arc.
z : ferme le chemin.
Utilisez des majuscules pour des coordonnées absolues, et des minuscules pour des coordonnées relatives.
Des virgules ou des espaces doivent séparer chaque information.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pPath | String | Chemin au format SVG. |
[pBackColor] = -1 | Long | Couleur de remplissage Laisser -1 pour une courbe transparente. |
[pPenColor] = vbBlack | Long | Couleur de la ligne |
[pPenWidth] = 1 | Long ou Single | Epaisseur de la ligne |
[pDash] = GdipDashSOLID | EGdipDashStyle | Style des pointillés |
[pAlpha] = 255 | Integer | Transparence du trait (0 --> 255) |
[pRegion] = "" | String | Nom de la région à créer avec les mêmes coordonnées |
Exemple :
lReturn =
oGdi.DrawSVG
(
"M 20 L 100 100 Q 120 120 100 150 70 180 z"
)
VII-K. DrawText▲
Dessine du texte.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pText | String | Texte à écrire Peut contenir des retours à la ligne (vbCrLf) |
pSize | Long ou Single | Taille du texte en pixel |
[pFontName]="" | String | Nom de la police (Arial…). Si non précisé, utilise la police système par défaut. |
[pX1]= 0 [pY1]= 0 [pX2] [pY2] |
Long ou Single | Position du texte. Le texte est écrit dans le rectangle défini par ces coordonnées Si pX2 et pY2 ne sont pas renseignés, le texte est positionné sur le point de coordonnées pX1, pY1. |
[pAlignHoriz] = HorzAlignCenter | EGdipHorzAlign | Alignement horizontal - HorzAlignLeft = 0 : Gauche - HorzAlignCenter = 1 : Centre - HorzAlignRight = 2 : Droite |
[pAlignVert] = VertAlignCenter | EGdipVertAlign | Alignement vertical - VertAlignTop = 0 : Haut - VertAlignCenter = 1 : Centre - VertAlignBottom = 2 : Bas |
[pPenColor] = 0 | Long | Couleur du texte |
[pPenAlpha] = 255 | Integer | Transparence du texte (0 --> 255) |
[pBackColor] = -1 | Long | Couleur de fond (-1 si transparent) |
[pBackAlpha] = -1 | Integer | Transparence du fond (0 --> 255) |
[pItalic] = False | Boolean | Italique Vrai/Faux |
[pBold] = False | Boolean | Gras Vrai/Faux |
[pUnderline] = False | Boolean | Souligné Vrai/Faux |
[pStrikeOut] = False | Boolean | Barré Vrai/Faux |
[pOnlyGetSize] = Faux | Boolean | Si vrai, n'écrit pas le texte sur l'image et retourne la taille du texte dans pX1, pY1, pX2, pY2, pSize |
[pRegion] = "" | String | Région à créer pour ce texte |
Exemple :
lReturn =
oGdi.DrawText
(
"TEST"
, 30
, "Arial"
, 0
, 0
, oGdi.ImageWidth
, oGdi.ImageHeight
, 0
, 0
, vbBlue
)
VII-L. TextRenderingHint▲
Type de rendu des textes.
Type EGdipTextRenderingHint en lecture / écriture.
S’applique à la fonction DrawText.
VII-M. TextCreateRegionOutline▲
Création de région texte au lieu de rectangle.
Type Boolean en lecture / écriture.
Si Vrai le paramètre pRegion crée une région composée des lettres du texte au lieu de créer une région rectangulaire.
VII-N. DrawImg▲
Dessine une image de la liste d'images secondaires sur l'image principale.
Voir les fonctions Img* pour créer les images secondaires.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pImg | Object ou String | Nom de l'image ou objet image clGdiplus |
pX1, pY1, [pX2], [pY2] | Long ou Single | Position de l'image Si pX2 et pY2 sont omis alors on conserve la taille de l'image Si pX2 ou pY2 sont omis alors on calcule la dimension manquante par rapport à l'autre en conservant le rapport hauteur/largeur. Si pImgSizeMode = GdipSizeModeAutoSize : pX1, pY1 : Position de l'image pX2 : Largeur de l'image pY2 : Hauteur de l'image Si pImgSizeMode = GdipSizeModeZoom/GdipSizeModeStretch/GdipSizeModeClip : pX1, Y1 : Point Haut-Gauche du rectangle contenant l'image pX2, Y2 : Point Bas-Droite du rectangle contenant l'image |
[pTranspcolor] = -1 | Integer | Couleur de transparence : les points de cette couleur ne seront pas dessinés |
[pImgSizeMode] = GdipSizeModeZoom | EGdipImgSizeMode | Type d'affichage de l'image (Zoom par défaut) |
[pImgPictureAlignment] = GdipAlignCenter | EGdipImgPictureAlignment | Position de l'image (centrée par défaut) |
[pPercent]=255 | Integer | Pourcentage pour affichage translucide (0 : invisible ; 255 : normal) |
[pRegion] = "" | String | Ajoute une région de nom pRegion |
[pRegionColor] = -1 | Long | Si renseigné, la région ajoutée contient les points de couleurs différentes de pRegionColor. Sinon la région ajoutée est le rectangle de positionnement. |
[pRegionAlpha] = -1 | Long | Si renseigné, la région ajoutée contient les points de transparences différentes de pRegionAlpha Sinon la région ajoutée est le rectangle de positionnement. |
Les coordonnées de l’image dessinée (sur l’image principale) sont retournées dans les propriétés DrawX1, DrawY1, DrawX2 et DrawY2.
Les coordonnées de la portion d’image qui a été réellement dessinée sont retournées dans les propriétés DrawOrigX1, DrawOrigY1, DrawOrigX2 et DrawOrigY2.
VII-O. DrawBitmap▲
Dessine un bitmap Gdiplus sur l'image.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pBitmap | Long ou LongLong | Identifiant du bitmap GdiPlus à dessiner |
pX1, pY1, [pX2], [pY2] | Long ou Single | Position de l'image Si pX2 et pY2 sont nuls alors on conserve la taille de l'image Si pX2 = 0 ou pY2 =0 alors on calcule la dimension manquante par rapport à l'autre en conservant le rapport hauteur/largeur. Si pImgSizeMode = GdipSizeModeAutoSize : pX1, pY1 : Position de l'image pX2 : Largeur de l'image pY2 : Hauteur de l'image Si pImgSizeMode = GdipSizeModeZoom/GdipSizeModeStretch/GdipSizeModeClip : pX1,Y1 : Point Haut-Gauche du rectangle contenant l'image pX2,Y2 : Point Bas-Droite du rectangle contenant l'image |
[pTranspcolor] = -1 | Integer | Couleur de transparence : les points de cette couleur ne seront pas dessinés |
[pImgSizeMode] = GdipSizeModeZoom | EGdipImgSizeMode | Type d'affichage de l'image (Zoom par défaut) |
[pImgPictureAlignment] = GdipAlignCenter | EGdipImgPictureAlignment | Position de l'image (centrée par défaut) |
[pPercent] = 255 | Integer | Pourcentage pour affichage transclucide (0 : invisible ; 255 : normal) |
[pRegion] = "" | String | Ajoute une région rectangulaire de nom pRegion |
[pRegionColor] = -1 | Long | Si renseigné, la région ajoutée contient les points de couleurs différentes de pRegionColor. Sinon la région ajoutée est le rectangle de positionnement. |
[pRegionAlpha] = -1 | Long | Si renseigné, la région ajoutée contient les points de transparences différentes de pRegionAlpha Sinon la région ajoutée est le rectangle de positionnement. |
VII-P. DrawControl▲
Dessine un contrôle sur l'image.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pX1, pY1, pX2, pY2 | Long ou Single | Position du contrôle. |
pControlType | EGdipControlType | Type de contrôle. |
[pPushed] = False | Boolean | Si bouton appuyé ou non. |
[pChecked] = False | Boolean | Si case cochée ou non. |
[pInactive] = False | Boolean | Si actif ou non. |
[pFlat] = False | Boolean | Si plat ou 3D. |
[pAdjustRect] = False | Boolean | Si Vrai, retourne les coordonnées de l'intérieur du contrôle dans les paramètres pX1, pY1, pX2, pY2. |
[pRegion] = "" | String | Ajoute une région de nom pRegion |
VII-Q. DrawTexture▲
Dessine une texture sur l'image.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
pName | String | Nom de la texture |
pX, pY, pX2, pY2 | Long ou Single | Position de la texture. pX2 et PY2 peuvent être omis. |
[pRegion] = "" | String | Ajoute une région rectangulaire de nom pRegion |
VII-R. PenAlignMode▲
Alignement du crayon
Type Long en lecture / écriture.
Voir énumération EGdipPenAlignMode
S'applique aux fonctions de dessin (rectangle, polygone, ellipse…).
VII-S. SmoothingMode▲
Dessin avec lissage.
Type EGdipSmoothingMode en lecture / écriture.
S'applique aux fonctions de dessin de lignes, polygones et ellipse, ainsi qu'à l'encadrement de régions.
VII-T. DrawDashCustom▲
Pointillés personnalisés.
Type Variant en lecture / écriture.
S'applique aux fonctions de dessin de lignes, polygones…, ainsi qu'à l'encadrement de régions.
Lorsque le type de pointillés (paramètre pDash des fonctions de dessin) est GdipDashDASHCUSTOM (5), cette propriété est utilisée pour spécifier le type de pointillés.
Il faut passer en paramètre un tableau contenant les tailles des traits et des espaces.
Par exemple pour dessiner un axe avec 10 pixels dessinés, espace de 1 pixel, 2 pixels dessinés, espace de 1 pixel.
ogdi.DrawDashCustom
=
Array
(
10
, 1
, 2
, 1
)
ogdi.DrawLine
50
, 50
, 200
, 200
, vbRed
, 2
, GdipDashDASHCUSTOM
VII-U. LineStart▲
Type de début de ligne.
Type EGdipLineCap en lecture / écriture.
VII-V. LineEnd▲
Type de fin de ligne.
Type EGdipLineCap en lecture / écriture.
VII-W. LineJoin▲
Type de jointure de ligne.
Type EGdipLineJoin en lecture / écriture.
VII-X. LineJoinMiterLimit▲
Limite aux jointures de ligne.
Type Single en lecture / écriture.
VII-Y. LineArrowLength▲
Taille des flèches de début ou fin de ligne.
Type Single en lecture / écriture.
VII-Z. LineArrowFill▲
Remplissage ou non des flèches de début ou fin de ligne.
Type Boolean en lecture / écriture.
VIII. Liste d'images secondaires▲
Ces images secondaires sont déconnectées de l'image principale.
Il est possible de les modifier sans altérer cette dernière.
Chaque image possède un identifiant unique de type chaîne de caractères.
Ces images sont des instances de clGdiplus.
Par défaut une image secondaire est créée avec les mêmes paramètres graphiques (lissage, transparence…) que l’image principale, sauf si la propriété ImgCopyRendering est mis à faux.
Utilisez ensuite la fonction DrawImg pour dessiner une de ces images sur l'image principale.
VIII-A. ImgNew▲
Crée une image secondaire vierge.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
[pName] = "" | String | Nom de l'image |
pWidth | Long | Largeur de l'image |
pHeight | Long | Hauteur de l'image |
pBefore | Variant/String | Nom de l'image secondaire avant laquelle insérer la nouvelle image |
pAfter | Variant/String | Nom de l'image secondaire après laquelle insérer la nouvelle image |
VIII-B. ImgNewForImage▲
Crée une image secondaire vierge.
Son format est déterminé par une autre image.
L'affichage d'une image sur une autre image de même format est plus rapide.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
[pName] = "" | String | Nom de l'image |
[pImgRef] | Variant | Image de référence pour le format. Object clGdiplus ou nom d'une image secondaire. |
pWidth | Long | Largeur de l'image |
pHeight | Long | Hauteur de l'image |
pBefore | Variant/String | Nom de l'image secondaire avant laquelle insérer la nouvelle image |
pAfter | Variant/String | Nom de l'image secondaire après laquelle insérer la nouvelle image |
VIII-C. ImgNewTemp▲
Crée une image secondaire vierge temporaire.
Cette image n’est pas ajoutée à la liste d'images.
Elle sera supprimée dès que l'objet retourné par la fonction est libéré.
Paramètre :
Paramètre | Type | Explication |
---|---|---|
[pName] = "" | String | Nom de l'image |
pWidth | Long | Largeur de l'image |
pHeight | Long | Hauteur de l'image |
VIII-D. Img▲
Recherche d'une image secondaire.
La fonction retourne un objet clGdiplus.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pName | String | Nom de l'image |
VIII-E. ImgExists▲
Teste si l'image secondaire existe.
La fonction retourne Vrai si l'image est déjà dans la liste.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pName | String | Nom de l'image |
VIII-F. Imgs▲
Collection d’images secondaires.
Cette propriété retourne une collection d'images de type clGdiplus.
VIII-G. ImgDelete▲
Supprime une image secondaire de la liste d'images.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pName | String | Nom de l'image |
VIII-H. ImgsDelete▲
Supprime plusieurs images secondaires de la liste d'images.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
[pName] = "*" | String | Nom des images. Le caractère * est accepté. |
VIII-I. ImgClone▲
Clone une image secondaire.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pImgSource | Object ou String | Nom de l'image ou image clGdiplus à cloner |
pNameDest | String | Nom de l'image clonée et ajouter à la liste d'images secondaires |
VIII-J. ImgDraw▲
Dessine l'image courante sur une autre image.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pTarget | clGdiplus | Objet image clGdiplus sur lequel dessiner l'image courante. |
pX1, pY1, [pX2], [pY2] | Long ou Single | Position de l'image Si pX2 et pY2 sont omis alors on conserve la taille de l'image Si pX2 ou pY2 sont omis alors on calcule la dimension manquante par rapport à l'autre en conservant le rapport hauteur/largeur. Si pImgSizeMode = GdipSizeModeAutoSize : pX1, pY1 : Position de l'image pX2 : Largeur de l'image pY2 : Hauteur de l'image Si pImgSizeMode = GdipSizeModeZoom/GdipSizeModeStretch/GdipSizeModeClip : pX1, Y1 : Point Haut-Gauche du rectangle contenant l'image pX2, Y2 : Point Bas-Droite du rectangle contenant l'image |
[pTranspcolor] = -1 | Integer | Couleur de transparence : les points de cette couleur ne seront pas dessinés |
[pImgSizeMode] = GdipSizeModeZoom | EGdipImgSizeMode | Type d'affichage de l'image (Zoom par défaut) |
[pImgPictureAlignment] = GdipAlignCenter | EGdipImgPictureAlignment | Position de l'image (centrée par défaut) |
[pPercent]=255 | Integer | Pourcentage pour affichage transclucide (0 : invisible ; 255 : normal) |
[pRegion] = "" | String | Ajoute une région de nom pRegion |
[pRegionColor] = -1 | Long | Si renseigné, la région ajoutée contient les points de couleurs différentes de pRegionColor. Sinon la région ajoutée est le rectangle de positionnement. |
[pRegionAlpha] = -1 | Long | Si renseigné, la région ajoutée contient les points de transparences différentes de pRegionAlpha Sinon la région ajoutée est le rectangle de positionnement. |
Cette méthode est équivalente à un appel de DrawImg à partir de l'image cible.
VIII-K. ImgName▲
Nom de l'image secondaire.
Cette propriété retourne le nom de l'image courante si c'est une image secondaire.
VIII-L. Parent▲
Parent de l'image secondaire.
Cette propriété retourne un objet de type clGdiplus.
IX. Transformations▲
Ces fonctions appliquent une transformation au contexte d'affichage.
Ces transformations s'appliquent aux opérations de dessin effectuées sur l'image et la création de régions.
IX-A. WorldRotate▲
Effectue une rotation.
Cette rotation a pour point pivot le point en haut à gauche.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pAngle | Single | Angle de rotation en degrés |
[pRight] = True | Boolean | Mettre à True pour ajouter cette transformation après la transformation active. Sinon elle est effectuée avant. |
IX-B. WorldTranslate▲
Effectue une translation.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
[pdX] = 0 | Single | Translation horizontale |
[pdY] = 0 | Single | Translation verticale |
[pRight] = True | Boolean | Mettre à True pour ajouter cette transformation après la transformation active. Sinon elle est effectuée avant. |
IX-C. WorldScale▲
Effectue une mise à l'échelle.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
[psX] = 1 | Single | Mise à l'échelle horizontale |
[psY] = 1 | Single | Mise à l'échelle verticale |
[pRight] = True | Boolean | Mettre à True pour ajouter cette transformation après la transformation active. Sinon elle est effectuée avant. |
IX-D. WorldReset▲
Annule les transformations.
IX-E. WorldPush▲
Sauvegarde les transformations.
Restaurez avec WorldPop.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
[pMatrix] = "default" | String | Nom de la matrice à sauvegarder. |
IX-F. WorldPop▲
Restaure les transformations préalablement sauvegardées avec WorldPush.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
[pMatrix] = "default" | String | Nom de la matrice à restaurer. |
IX-G. WorldView▲
Définit les transformations à partir de deux rectangles.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pSrcX1, pSrcY1, pSrcX2, pSrcY2 | Single | Coordonnées du rectangle source. |
pDstX1, pDstY1, pDstX2, pDstY2 | Single | Coordonnées du rectangle cible. |
IX-H. WorldGetMatrix▲
Retourne les éléments de la matrice de transformation courante de l’image.
Voir le chapitre sur les matrices.
IX-I. WorldSetMatrix▲
Applique une matrice de transformation à l’image.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pMatrix | Variant | Nom de la matrice ou tableau d’éléments. |
Voir le chapitre sur les matrices.
IX-J. WorldTransformPoint▲
Transforme les coordonnées d'un point.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pX, pY | Long | Coordonnées du point à transformer. |
[pMatrix] = "" | String | Nom de la matrice à utiliser pour la transformation. Si non précisé, c'est la matrice courante qui est utilisée. |
IX-K. WorldTransformVector▲
Transforme les coordonnées d'un vecteur.
Les transformations de translation ne sont pas appliquées.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pX, pY | Long | Coordonnées du vecteur à transformer. |
[pMatrix] = "" | String | Nom de la matrice à utiliser pour la transformation. Si non précisé, c'est la matrice courante qui est utilisée. |
X. Régions / collisions▲
X-A. RegionAppend▲
Type Booléen en lecture / écriture.
Utiliser ce paramètre pour cumuler les régions créées avec le même nom.
X-B. CreateRegionLine▲
Ajoute une région ligne.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pRegion | String | Nom de la région |
pX1, pY1, pX2, pY2 | Long ou Single | Coordonnées du segment. |
[pPenWidth] = 1 | Long ou Single | Epaisseur de la ligne |
X-C. CreateRegionEllipse▲
Ajoute une région elliptique.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pRegion | String | Nom de la région |
pX1, pY1, pX2, pY2 | Long ou Single | Position de l'ellipse |
[pType] = TypeEllipseRectangle | EGdipTypeEllipse | Type de positionnement Si pType = TypeEllipseRectangle = 0 : On passe un rectangle en paramètre, l'ellipse remplit ce rectangle pX1, Y1 : Point Haut-Gauche du rectangle pX2, Y2 : Point Bas-Droite du rectangle Si pType = TypeEllipseCenter = 1 : on passe le centre et les rayons de l'ellipse en paramètre pX1, pY1 : Centre de l'ellipse pX2 : Rayon horizontal pY2 : Rayon vertical |
[pPenWidth] = 1 | Long ou Single | Epaisseur de la ligne |
X-D. CreateRegionPolygon▲
Ajoute une région polygonale.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pRegion | String | Nom de la région |
pPoints | Variant | Tableau de points (Long ou Single) formant le polygone Array(X1, Y1, X2, Y2, X3, Y3,…) |
[pPenWidth] = 1 | Long ou Single | Epaisseur de la ligne |
X-E. CreateRegionRect▲
Ajoute une région rectangulaire.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pRegion | String | Nom de la région |
pX1, pY1 | Long ou Single | Point Haut-Gauche du rectangle |
pX2, pY2 | Long ou Single | Point Bas-Droite du rectangle |
[pPenWidth] = 1 | Long ou Single | Epaisseur de la ligne |
X-F. CreateRegionRoundRect▲
Ajoute une région rectangulaire avec coins arrondis.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pRegion | String | Nom de la région |
pX1, pY1 | Long ou Single | Point Haut-Gauche du rectangle |
pX2, pY2 | Long ou Single | Point Bas-Droite du rectangle |
pX3, pY3 | Long ou Single | Taille de l'ellipse utilise pour les coins |
[pPenWidth] = 1 | Long ou Single | Epaisseur de la ligne |
X-G. CreateRegionCurve▲
Ajoute une région à partir d'une ou plusieurs courbes de Bézier.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pRegion | String | Nom de la région |
pPoints | Variant | Tableau de points (Long ou Single) formant la courbe : Array(X1, Y1, X2, Y2, X3, Y3,…). Nécessite 1 point de départ + 3 points par courbe. |
[pPenWidth] = 1 | Long ou Single | Epaisseur de la ligne |
X-H. CreateRegionCardinal▲
Ajoute une région à partir d'une ou plusieurs courbes cardinales.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pRegion | String | Nom de la région |
pPoints | Variant | Tableau de points (Long ou Single) formant la courbe : Array(X1, Y1, X2, Y2, X3, Y3,…) |
[pTension] = 0.5 | single | Tension de la courbe |
[pPenWidth] = 1 | Long ou Single | Epaisseur de la ligne |
X-I. CreateRegionSVG▲
Ajoute une région à partir d'un chemin SVG.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pRegion | String | Nom de la région |
pPath | String | Chemin au format SVG. Attention : toute la norme SVG n'est pas implémentée. Voir la fonction DrawSVG pour plus d'informations. |
[pPenWidth] = 1 | Long ou Single | Epaisseur de la ligne |
X-J. CreateRegionFromColor▲
Ajoute une région définie par la couleur des points.
Attention : il n'est pas possible d'encadrer cette région avec la fonction RegionFrame car c'est en fait un ensemble de rectangle remplissant la région.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pRegion | String | Nom de la région à créer |
[pColor]=-1 | Long | Couleur déterminant la région |
[pAlpha]=-1 | Long | Transparence déterminant la région |
[pIncludeColor]=False | Boolean | - Vrai : La région contient les points de couleur pColor et de transparence pAlpha - Faux : La région contient les points de couleur différente de pColor et de transparence différente de pAlpha |
[pPointX]=-1, [pPointY]=-1 | Long | Si renseigné, seuls les points adjacents sont traités (à la manière du pot de peinture de MsPaint) |
X-K. Regions▲
Renvoie une collection des noms de régions.
X-L. RegionDelete▲
Supprime une région.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pRegion | String | Nom de la région à supprimer |
X-M. RegionsDelete▲
Supprime toutes les régions spécifiées.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
[pRegion]="*" | String | Nom des régions à supprimer, peut contenir un joker (*) |
X-N. RegionFrame▲
Dessine un trait qui encadre la région.
Les paramètres suivants ne fonctionnent qu'avec des chemins : pAlpha, pDash et pInside.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pRegion | String | Nom de la région |
[pPenColor] = vbBlack | Long | Couleur du trait |
[pPenWidth] = 1 | Long ou Single | Épaisseur du trait |
[pAlpha] = 255 | Integer | Transparence du trait (0 --> 255) |
[pDash] = GdipDashSOLID | EGdipDashStyle | Style des pointillés |
[pInside] = Faux | Boolean | Encadre à l'intérieur si Vrai |
X-O. RegionFill▲
Remplit une région d'une couleur.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pRegion | String | Nom de la région |
[pColor] = vbBlack | Long | Couleur de remplissage |
[pColorGradient] = -1 | Long | Deuxième couleur pour dégradé |
[pGradientVert] = Faux | Boolean | Mettre à Vrai pour un dégradé vertical |
[pAlpha] = 255 | Integer | Transparence du remplissage (0 --> 255) |
X-P. RegionHatch▲
Hachure une région.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pRegion | String | Nom de la région |
[pColor] = vbBlack | Long | Couleur de remplissage |
[pBackColor] = -1 | Long | Deuxième couleur pour le fond |
[pStyle] = HatchStyleHorizontal | EGdipHatchStyle | Type de hachure |
[pAlpha] = 255 | Integer | Transparence des hachures (0 --> 255) |
X-Q. FillMode▲
Mode de remplissage.
Type EGdipFillMode en lecture / écriture.
X-R. GetRegionXY▲
Identifie la région située sur un point.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pX | Single | Position X du point |
pY | Single | Position Y du point |
[pInclude] | Variant | Tableau de régions à inclure. L'utilisation de joker (*) est possible. |
[pExclude] | Variant | Tableau de régions à exclure. L'utilisation de joker (*) est possible. |
[pObject] | Variant | Contrôle ou formulaire utilisé pour convertir les coordonnées de twips/points vers pixels. |
[pMatrix] | Variant | Matrice utilisée pour convertir les coordonnées. |
La fonction retourne le nom de la région (la première trouvée) située sur le point précisé.
Exemple :
Private
Sub
Image0_MouseMove
(
Button As
Integer
, Shift As
Integer
, X As
Single
, Y As
Single
)
Dim
lRegion As
String
' Région survolée
' On convertit les coordonnées vers des coordonnées images en pixels avec CtrlToImgX et CtrlToImgY
lRegion =
oGdi.GetRegionXY
(
oGdi.CtrlToImgX
(
X, Me.Image0
), oGdi.CtrlToImgY
(
Y, Me.Image0
))
' Ou alors on peut utiliser le paramètre pObject
lRegion =
oGdi.GetRegionXY
(
X, Y, , ,Me.Image0
)
End
Sub
X-S. GetRegionXYLine▲
Identifie la région située sur un point.
Ne fonctionne qu'avec des chemins.
Le point doit être situé sur la ligne formant la région et non pas à l'intérieur.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pX | Single | Position X du point |
pY | Single | Position Y du point |
[pLineWidth] = -1 | Long ou Single | Largeur du trait pour le test. Laissez à -1 pour utiliser la largeur spécifiée lors de la création de la région. |
[pInclude] | Variant | Tableau de régions à inclure. L'utilisation de joker (*) est possible. |
[pExclude] | Variant | Tableau de régions à exclure. L'utilisation de joker (*) est possible. |
[pObject] | Variant | Contrôle ou formulaire utilisé pour convertir les coordonnées de twips vers pixels. |
[pMatrix] | Variant | Matrice utilisée pour convertir les coordonnées. |
La fonction retourne le nom de la région située sur le point précisé.
Exemple :
Private
Sub
Image0_MouseMove
(
Button As
Integer
, Shift As
Integer
, X As
Single
, Y As
Single
)
Dim
lRegion As
String
' Région survolée
' On convertit les coordonnées vers des coordonnées images en pixels avec CtrlToImgX et CtrlToImgY
lRegion =
oGdi.GetRegionXYLine
(
oGdi.CtrlToImgX
(
X, Me.Image0
), oGdi.CtrlToImgY
(
Y, Me.Image0
))
' Ou alors on peut utiliser le paramètre pObject
lRegion =
oGdi.GetRegionXYLine
(
X, Y, , , ,Me.Image0
)
End
Sub
X-T. PointInRegion▲
Teste si un point est dans une région.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pX | Single | Position X du point |
pY | Single | Position Y du point |
pRegion | String | Nom de la région à tester |
[pObject] | Variant | Contrôle ou formulaire utilisé pour convertir les coordonnées de twips vers pixels. |
La fonction retourne Vrai si le point est dans la région précisée en paramètre.
X-U. PointInRegionLine▲
Teste si un point est sur une région.
Ne fonctionne qu'avec des chemins.
Le point doit être situé sur la ligne formant la région et non pas à l'intérieur.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pX | Long ou Single | Position X du point |
pY | Long ou Single | Position Y du point |
pRegion | String | Nom de la région à tester |
[pLineWidth] = -1 | Long ou Single | Largeur du trait pour le test. Laissez à -1 pour utiliser la largeur spécifiée lors de la création de la région. |
[pObject] | Variant | Contrôle ou formulaire utilisé pour convertir les coordonnées de twips vers pixels. |
La fonction retourne Vrai si le point est sur l'entourage de la région précisée en paramètre.
X-V. RegionGetRect▲
Coordonnées rectangulaires d'une région.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pRegion | String | Nom de la région. |
pX1, pY1, pX2, pY2 | Long ou Single | En retour = coordonnées du rectangle contenant la région. |
X-W. RegionGetCenter▲
Coordonnées du centre d'une région.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pRegion | String | Nom de la région. |
pX, pY | Long ou Single | En retour : coordonnées du centre de la région. |
X-X. RegionExists▲
Teste si une région existe.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pRegion | String | Nom de la région à tester |
La fonction retourne Vrai si la région existe.
X-Y. RegionIsEmpty▲
Teste si une région est vide.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pRegion | String | Nom de la région à tester |
La fonction retourne Vrai si la région est vide.
Une région peut être vide par exemple suite à une combinaison avec d'autres régions.
X-Z. RegionIsPath▲
Teste si une région est un chemin (path) Gdi+.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pRegion | String | Nom de la région à tester |
La fonction retourne Vrai si la région est une chemin Gdi+.
C'est-à-dire que la région est une succession de lignes.
Certaines fonctions ne fonctionnent qu'avec des chemins.
X-AA. RegionCombine▲
Combine deux régions.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pRegion1 | String | Nom de la première région Cette région reçoit la région résultante de la combinaison. Attention : cette région ne sera plus un chemin sauf utilisation de CombineModeUnion avec un autre chemin. |
pRegion2 | String | Nom de la deuxième région |
pCombineMode | EGdipCombineMode | Mode de combinaison |
X-AB. RegionScale▲
Redimensionne une région.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pRegion | String | Nom de la région |
pScaleX, pScaleY | Single | Facteurs de redimensionnement |
[pCenter] = True | Booléen | Si vrai, le rectangle contenant la région est recentré après redimensionnement |
X-AC. RegionTranslate▲
Déplace une région.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pRegion | String | Nom de la région |
pdX, pdY | Single | Nombre de pixels de déplacement |
X-AD. RegionRotate▲
Applique une rotation à une région.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pRegion | String | Nom de la région |
pAngle | Single | Angle en degré |
[pCenter] = True | Booléen | Si vrai, le rectangle contenant la région est recentré après rotation |
X-AE. RegionTransform▲
Transforme une région.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pRegion | String | Nom de la région |
[pMatrix] | Variant | Matrice ou nom d'une matrice. Ou matrice courante (world*) si non précisé. |
X-AF. RegionsIntersect▲
Teste si deux régions ont une intersection.
La fonction retourne Vrai si les deux régions ont une intersection.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pRegion1 | String | Nom de la première région |
pRegion2 | String | Nom de la deuxième région Si ce paramètre est laissé vide, il sera renseigné avec la première région trouvée qui a une intersection avec pRegion1 |
[pRegionIntersect] | String | Retourne dans ce paramètre le nom de la première région en intersection. |
X-AG. RegionClone▲
Clone une région.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pRegion | String | Nom de la région à cloner |
pRegionClone | String | Nom de la région clone |
pSourceGdi | clGdiplus | Objet contenant la région source. Permet de copier des régions entre instances de clGdiplus. |
X-AH. SetFormRegion▲
Limite l'affichage de formulaire a une région.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pForm | Formulaire | Le formulaire à limiter |
pRegion | String | Nom de la région |
[pCtrlRef]=Nothing | Control | Contrôle de référence À utiliser si la région a été créée par rapport à l'image du contrôle. |
[pInverseRegion]=False | Boolean | Si Vrai, la région est inversée |
[pCorrectionLeft]=0 | Single | Correction de position gauche de la région en pixel |
[pCorrectionTop]=0 | Single | Correction de position haute de la région en pixel |
[pCorrectionRight]=0 | Single | Correction de position droite de la région en pixel |
[pCorrectionBottom]=0 | Single | Correction de position basse de la région en pixel |
X-AI. ResetFormRegion▲
Rétablit l'affichage du formulaire complet.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pForm | Formulaire | Le formulaire à rétablir |
X-AJ. RegionIsPath▲
Retourne Vrai si la région est en fait un chemin Gdi+.
Un chemin Gdi+ est en ensemble de lignes.
Une région Gdi+ est la surface correspondant à un chemin.
Les fonctions PointInRegionLine et GetRegionXYLine ne sont disponible que pour des chemins.
La fonction RegionFrame fonctionne en mode dégradé si ce n’est pas sur un chemin.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pRegion | String | Nom de la région |
X-AK. NormalRegionPoint▲
Recherche le vecteur normal à un point d'une région.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pX, pY | Long ou Single | Coordonnées du point |
pRegion | String | Nom de la région |
pNormalX, pNormalY | Long ou Single | En retour : normale à la région au point précisé |
pRefPointX, pRefPointY | Long ou Single | Coordonnées du point de référence, pour choisir la normale parmi les deux disponibles |
[pRayon] | Long ou Single | Rayon de l’ellipse en pixels pour calcul de la normale (5 pixels par défaut) |
[pScale] | Long ou Single | Mise à l’échelle à appliquer pour le calcul (permet plus de précision). |
X-AL. RayCast▲
Recherche le premier point d'intersection entre un segment et une région.
Utilise un algorithme de Bresenham.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pX1, pY1, pX2, pY2 | Long ou Single | Coordonnées du segment |
pRegion | String | Nom de la région |
pRayX, pRayY | Long | En retour : coordonnées du point d’intersection |
X-AM. RegionWorldTransform▲
Transformation des régions à la création.
Type Boolean en lecture / écriture.
Vrai par défaut.
S'applique aux fonctions de création de régions.
Si cette propriété est Vrai, alors les transformations définies par les fonctions World* sont appliquées.
A noter : ces transformations sont également appliquées aux fonctions RegionFrame et RegionFill.
Pour éviter une double application de ces transformations, mettez ce paramètre à Faux si nécessaire.
XI. Sauvegarde de l'image principale en mémoire▲
XI-A. ImageKeep▲
Sauvegarde l'image principale en mémoire
Paramètres :
Paramètre | Type | Explication |
---|---|---|
[pImage]="Default" | String | Nom de la sauvegarde |
L'image est sauvegardée en mémoire, prête à être rétablie avec la fonction ImageReset.
XI-B. ImageReset▲
Rétablit l'image de la mémoire
Paramètres :
Paramètre | Type | Explication |
---|---|---|
[pImage]="Default" | String | Nom de la sauvegarde |
XI-C. ImageExists▲
Test si une image sauvegardée existe en mémoire.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
[pImage]="Default" | String | Nom de la sauvegarde à tester |
XI-D. ImageDelete▲
Supprime une image sauvegardée en mémoire avec ImageKeep.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
[pImage]="Default" | String | Nom de la sauvegarde à supprimer |
XI-E. ImagesDelete▲
Supprime toutes les images principales sauvegardées en mémoire.
Paramètres :
XI-F. ImageGetBitmap▲
Renvoie le bitmap gdiplus d'une image principale sauvegardée en mémoire.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
[pImage]="Default" | String | Nom de la sauvegarde à supprimer |
[pClone]= Faux | Boolean | Si Vrai, clone l'image. |
XII. Données Exif▲
XII-A. GetExifData▲
Renvoie la valeur du tag EXIF.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pTag | EGdipTagName | Identifiant du tag Exif à lire. |
Renvoie la valeur du tag dans un Variant.
Renvoie Null si le tag n'existe pas.
XII-B. SetExifData▲
Écrit certains > tags Exif.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pTag | EGdipTagName | Identifiant du tag Exif à lire |
pValue | Variant | Valeur du tag à écrire |
Si la valeur passée en paramètre est Null, le tag est supprimé de l'image.
XII-C. GenerateThumbnail▲
Génère une miniature EXIF intégrée à l'image.
Cette miniature ne sera utile que dans la cas d'une sauvegarde dans un fichier JPEG ou TIFF.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
[pSize] = 200 | Long | Taille maxi de la miniature. |
[pQuality] = -1 | Long | Qualité de la miniature (0 à 100) |
XII-D. ImportExifData▲
Importe les données Exif d'un fichier dans l'image en cours.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pFile | String | Nom du fichier. |
[pExcludeTags] | Tableau de Long | Tableau de tags Exif à exclure |
XIII. Gif animés▲
XIII-A. GifSetFrame▲
Change l'image courante d'un GIF animé.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pFrame | Long | Numéro de l'image |
XIII-B. GifGetFrameCount▲
Nombre d'images d'un GIF animé.
XIII-C. GifGetFrameDelay▲
Délais d'affichage des images d'un GIF animé.
Paramètres : Renvoie un tableau contenant autant de délais que d'images dans le GIF.
XIV. Textures▲
Les textures dans Gdi+ ne se comportent pas comme les textures d’OpenGL par exemple.
Elles remplissent une zone en se répétant, mais ne s'étendent pas.
Elles ont comme origine le point (0,0) de l'image ; il faut donc les décaler pour les afficher à un endroit précis.
XIV-A. TextureAddFromFile▲
Ajoute une texture à partir d'un fichier.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pName | String | Nom de la texture |
pFile | String | Chemin du fichier de la texture |
XIV-B. TextureAddFromImg▲
Ajoute une texture à partir d'une image secondaire.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pName | String | Nom de la texture |
pImg | Object ou String | Nom de l'image secondaire ou image clGdiplus contenant la texture |
XIV-C. TextureAddFromControl▲
Ajoute une texture à partir de l'image intégrée à un contrôle.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pName | String | Nom de la texture |
pCtrl | Control | Contrôle contenant la texture |
XIV-D. TextureAddFromColor▲
Ajoute une texture à partir d’une couleur.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pName | String | Nom de la texture |
pColor | Long | Couleur RGB |
pAlpha | Integer | Transparence (0-255) |
XIV-E. TextureExists▲
Texte si une texture existe.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pName | String | Nom de la texture |
XIV-F. TextureDelete▲
Supprime une texture.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pName | String | Nom de la texture |
XIV-G. TextureTranslate▲
Déplace une texture.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pName | String | Nom de la texture |
pDx, pDy | Single | Déplacements en pixels |
[pRight] = True | Boolean | Mettre à True pour ajouter cette transformation après la transformation active. Sinon elle est effectuée avant. |
XIV-H. TextureScale▲
Redimensionne une texture.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pName | String | Nom de la texture |
psX, psY | Single | Facteurs de redimensionnement |
[pRight] = True | Boolean | Mettre à True pour ajouter cette transformation après la transformation active. Sinon elle est effectuée avant. |
XIV-I. TextureRotate▲
Applique une rotation à une texture.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pName | String | Nom de la texture |
pAngle | Single | Angle de rotation en degrés |
[pRight] = True | Boolean | Mettre à True pour ajouter cette transformation après la transformation active. Sinon elle est effectuée avant. |
XIV-J. TextureTransform▲
Transforme une texture.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pName | String | Nom de la texture |
[pMatrix] = "" | String | Matrice ou nom d'une matrice. Ou matrice courante (world*) si non précisé. |
[pRight] = True | Boolean | Mettre à True pour ajouter cette transformation après la transformation active. Sinon elle est effectuée avant. |
XIV-K. TextureReset▲
Annule les transformations d’une texture.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pName | String | Nom de la texture |
XIV-L. TextureWidth▲
Largeur une texture.
Renvoie la largeur en pixel.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pName | String | Nom de la texture |
XIV-M. TextureHeight▲
Hauteur une texture.
Renvoie la hauteur en pixel.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pName | String | Nom de la texture |
XIV-N. FillTexture▲
Texture de remplissage.
Type String en lecture / écriture.
S'applique aux fonctions de dessin (y compris des textes), ainsi qu'aux fonctions de remplissage (FillColor et RegionFill).
XIV-O. PenTexture▲
Texture de crayon pour les lignes.
Type String en lecture / écriture.
S'applique aux fonctions de dessin de lignes, ainsi qu'à l'encadrement de régions.
XIV-P. TextureWrap▲
Mode d’affichage mosaïque de la texture.
Type Boolean en lecture / écriture.
Égal à Vrai par défaut, la texture se répète alors sur les deux axes.
Si Faux alors la texture n’est affichée qu’une fois.
XV. Matrices▲
Les matrices de transformations sont des tableaux de six éléments : (m11, m12, m21, m22, dx, dy)
- m11, m12, m21, m22 définissent les rotations et mises à l’échelle ;
- dx et dy définissent les translations suivant les axes X et Y.
Les quatre premiers éléments sont liés. Si aucune rotation n’est définie, m11 et m22 définissent la mise à l’échelle suivant les axes X et Y.
Si une rotation est définie, ces éléments sont calculés suivant une règle trigonométrique.
Plutôt que de définir nous-mêmes les valeurs de ces éléments, on préférera utiliser les fonctions individuelles de rotations, translations et mises à l’échelle.
XV-A. MatrixNew▲
Crée une matrice à partir des valeurs de chaque élément.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pMatrix | String | Nom de la matrice |
[pElements] | Tableau de Single | Éléments de la matrice |
Si pElements est omis, une matrice ne créant aucune transformation est créée.
XV-B. MatrixDelete▲
Supprime une matrice
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pMatrix | String | Nom de la matrice |
XV-C. MatrixTranslate▲
Applique une translation à une matrice.
Retourne la matrice transformée.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pMatrix | Variant | Nom de la matrice ou tableau d’éléments |
[pdX] = 0 | Single | Translation horizontale |
[pdY] = 0 | Single | Translation verticale |
[pRight] = True | Boolean | Mettre à True pour ajouter cette transformation après la transformation active. Sinon elle est effectuée avant. |
XV-D. MatrixScale▲
Effectue une mise à l'échelle d’une matrice.
Retourne la matrice transformée.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pMatrix | Variant | Nom de la matrice ou tableau d’éléments |
[psX] = 1 | Single | Mise à l'échelle horizontale |
[psY] = 1 | Single | Mise à l'échelle verticale |
[pRight] = True | Boolean | Mettre à True pour ajouter cette transformation après la transformation active. Sinon elle est effectuée avant. |
XV-E. MatrixRotate▲
Applique une rotation à une matrice.
Retourne la matrice transformée.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pMatrix | Variant | Nom de la matrice ou tableau d’éléments |
pAngle | Single | Angle de rotation en degrés |
[pRight] = True | Boolean | Mettre à True pour ajouter cette transformation après la transformation active. Sinon elle est effectuée avant. |
XV-F. MatrixMultiply▲
Fusionne deux matrices.
Retourne la matrice fusionnée.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pMatrix1 | Variant | Nom de la première matrice ou tableau d’éléments |
pMatrix2 | Variant | Nom de la deuxième matrice ou tableau d’éléments |
[pRight] = True | Boolean | Mettre à True pour appliquer la deuxième matrice après la première |
XV-G. MatrixInvert▲
Inverse une matrice.
Retourne la matrice inversée.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pMatrix | Variant | Nom de la matrice à inverser |
XV-H. MatrixExists▲
Teste si une matrice existe.
Retourne Vrai si la matrice existe.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pName | String | Nom de la matrice |
XV-I. Matrix▲
Retourne le tableau d’éléments d’une matrice.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pName | String | Nom de la matrice |
XV-J. MatrixTransformPoint▲
Transforme un point en appliquant une ou plusieurs matrices.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pX, pY | Long ou Single | Coordonnées du point à transformer |
pMatrix | Variant | Une ou plusieurs matrices à appliquer |
XV-K. MatrixTransformPointSingle▲
Transforme un point en appliquant une ou plusieurs matrices.
Idem à MatrixTransformPoint mais avec des paramètres de type Single quel que soit la valeur de la constante UseSingle.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pX, pY | Single | Coordonnées du point à transformer |
pMatrix | Variant | Une ou plusieurs matrices à appliquer |
XV-L. MatrixTransformVector▲
Transforme un vecteur en appliquant une ou plusieurs matrices.
Les translations ne s’appliquent pas aux vecteurs.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pX, pY | Long ou Single | Coordonnées du vecteur à transformer |
pMatrix | Variant | Une ou plusieurs matrices à appliquer |
XV-M. MatrixTransformVectorSingle▲
Transforme un vecteur en appliquant une ou plusieurs matrices.
Idem à MatrixTransformVector mais avec des paramètres de type Single quel que soit la valeur de la constante UseSingle.
Les translations ne s’appliquent pas aux vecteurs.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pX, pY | Single | Coordonnées du vecteur à transformer |
pMatrix | Variant | Une ou plusieurs matrices à appliquer |
XV-N. Les matrices prédéfinies▲
XV-N-1. RepaintMatrix▲
Matrice de transformation de l'image principale vers le contrôle
RepaintMatrixUpdate doit être mis à True au préalable.
XV-N-2. DrawMatrix▲
Matrice de transformation d’une image secondaire vers l’image principale.
Cette matrice est mise à jour par la méthode DrawImg.
XV-N-3. MatrixPointsToPixels▲
Matrice de transformation de points (ou twips) vers pixels.
XV-N-4. MatrixPixelsToPoints▲
Matrice de transformation pixels vers points (ou twips).
XV-N-5. MatrixCmToPixels▲
Matrice de transformation de centimètres vers pixels.
XV-N-6. MatrixPixelsToCm▲
Matrice de transformation de pixels vers centimètres.
XV-N-7. MatrixCtrlToImg▲
Matrice de transformation du contrôle (points ou twips) vers l’image (pixels).
XV-N-8. MatrixImgToCtrl▲
Matrice de transformation de l’image (pixels) vers le contrôle (points ou twips).
XVI. Polices de caractères▲
XVI-A. FontPrivateAddFromFile▲
Ajoute une police de caractères privée à partir d'un fichier.
Cette police de caractères ne sera utilisable que dans l'instance de clGdiplus où elle a été chargée.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pFile | String | Chemin du fichier de la texture |
XVI-B. FontPrivateAddFromByte▲
Ajoute une police de caractères privée à partir d'un tableau de byte contenant la police.
Cette police de caractères ne sera utilisable que dans l'instance de clGdiplus où elle a été chargée.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pByte | tableau de Byte | tableau de Byte contenu les données de la police de caractères |
XVI-C. FontsPrivateDelete▲
Supprime toutes les polices de caractères privées.
Pas de paramètre
XVI-D. FontsEnumerate▲
Énumère les polices de caractères.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pFonts | Collection | Collection qui contiendra la liste des polices de caractères. |
XVII. Conversion de coordonnées▲
XVII-A. ImgToCtrlX et ImgToCtrlY▲
Converti depuis les coordonnées image vers les coordonnées contrôle
On donne des pixels en entrée, on reçoit des points (UserForm) ou Twips (Access) en sortie.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pX ou pY | Long ou Single | Abscisse ou ordonnées à convertir |
pObject | Object | Contrôle Image ou formulaire à utiliser pour la conversion. |
[pDecalage] = True | Boolean | Calcul avec décalage (Position de l'image dans le contrôle) Définir à Vrai pour convertir une position, à Faux pour convertir une taille. |
XVII-B. CtrlToImgX et CtrlToImgY▲
Converti depuis les coordonnées contrôle vers les coordonnées image
On donne des points (UserForm) ou Twips (Access) en entrée, on reçoit des pixels en sortie.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pX ou pY | Single | Abscisse ou ordonnées à convertir |
pObject | Object | Contrôle Image ou formulaire à utiliser pour la conversion. |
[pDecalage] = True | Boolean | Calcul avec décalage (Position de l'image dans le contrôle) Définir à Vrai pour convertir une position, à Faux pour convertir une taille. |
XVII-C. PointsToPixelsX et PointsToPixelsY▲
Converti les Points (UserForm) ou Twips (Access) en Pixels
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pPointsX pPointsY |
Single | Valeur à convertir |
La fonction retourne la valeur convertie en Pixels
XVII-D. PixelsToPointsX et PixelsToPointsY▲
Converti les Pixels en Points (UserForm) ou en Twips (Access)
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pPixelsX pPixelsY |
Long ou Single | Valeur à convertir |
La fonction retourne la valeur convertie en Points (UserForm) ou en Twips (Access)
XVIII. Minuteries▲
XVIII-A. Wait▲
Fonction d’attente.
Cette fonction attend un intervalle en millisecondes avant de redonner la main au reste du code.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pIntervalMs | Long | Intervalle d’attente en millisecondes |
[pDoEvents] = True | Boolean | Si vrai, les événements de l’application sont traités pendant l’attente. Sinon l’attente bloque tout affichage ou interaction. |
XVIII-B. TimeStart▲
Initialise le timer pour la fonction TimeElapsedMs
XVIII-C. TimeElapsedMs▲
Renvoi le nombre de millisecondes écoulées depuis la dernière exécution de TimeElapsedMs (ou de TimeStart).
La fonction retourne un Single de grande précision.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
[pSinceLastTime]=True | Boolean |
Si Vrai : temps écoulé depuis la dernière exécution de TimeElapsedMs Si Faux : temps écoulé depuis la dernière exécution de TimeStart. |
XIX. Curseur▲
XIX-A. CursorAddFromFile▲
Ajoute un curseur à partir d’un fichier
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pName | String | Nom du curseur |
pFile | String | Chemin d’un fichier .cur |
XIX-B. CursorAddFromId▲
Ajoute un curseur standard intégré
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pName | String | Nom du curseur |
pId | Long |
Identifiant du curseur. Énumération EGdipCursors |
XIX-C. CursorAddFromImg▲
Ajoute un curseur à partir d’une image clGdiplus
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pName | String | Nom du curseur |
pImg | Variant |
Nom d’une image de la liste d’image. Ou objet clGdiplus. |
pHotspotX | Long | Coordonnées X du pixel « Hotspot » |
pHotspotY | Long | Coordonnées Y du pixel « Hotspot » |
XIX-D. CursorSet▲
Applique un curseur
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pName | String | Nom du curseur |
XIX-E. CursorDelete▲
Supprime un curseur
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pName | String | Nom du curseur |
XX. Autres méthodes diverses▲
XX-A. GetPixel▲
Renvoie la couleur d'un point
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pX,pY | Long ou Single | Coordonnées du point |
La fonction retourne la couleur du point dans un entier long.
Exemple :
Private
Sub
Image0_MouseMove
(
Button As
Integer
, Shift As
Integer
, X As
Single
, Y As
Single
)
Dim
lColor As
Long
' Couleur sous la souris
' On convertit les coordonnées vers des coordonnées images en pixels avec CtrlToImgX et CtrlToImgY
lColor =
oGdi.GetPixel
(
oGdi.CtrlToImgX
(
X, Me.Image0
), oGdi.CtrlToImgY
(
Y, Me.Image0
))
End
Sub
XX-B. LongToRGB▲
Conversion code couleur Long vers RGB
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pLong | Long | Valeur de la couleur |
pRed | Long | Composante rouge de la couleur |
pGreen | Long | Composante verte de la couleur |
pBlue | Long | Composante bleue de la couleur |
XX-C. SetXPTheme▲
Active ou désactive le thème XP pour les contrôles.
Permet de réduire le scintillement de l'image (pour WinXP/Acc2003)
La fonction s'applique sur toute l'application, mais seulement sur les contrôles (les barres de menu, barres de titre… conservent le thème XP).
Remarque : Utiliser la fonction RepaintNoFormRepaint à la place de la fonction Repaint aide à réduire significativement les scintillements.
Voir la fonction SetDoubleBufferXP pour réduire les scintillements sans désactiver le thème XP.
Utilisez cette fonction même si vous avez déjà désactivé le thème XP dans les options de la base de données.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
[pActive]=True | Boolean | Vrai pour activer. Faux pour désactiver. |
Exemple :
' Désactive le thème XP pour réduire les scintillements si la version d'Access est 2003
If
SysCmd
(
acSysCmdAccessVer) =
"11.0"
Then
oGdi.SetXPTheme
False
XX-D. SetDoubleBufferXP▲
Permet de réduire le scintillement de l'image (pour WinXP/Acc2003)
Remarque : Utiliser la fonction RepaintNoFormRepaint à la place de la fonction Repaint aide à réduire significativement les scintillements.
La fonction de double buffer est gourmande en ressource.
Envisagez l'utilisation de la fonction SetXPTheme pour désactiver le thème XP.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pForm | Formulaire | Formulaire dont on veut réduire le scintillement Privilégiez un formulaire de type indépendant (Fen. Indépendante = Oui). Si la fonction est appliquée sur un formulaire avec la propriété Fen. Indépendante = Non, alors le double buffer s'applique sur toute l'application et peut faire scintiller d'autres objets. |
[pActive]=True | Boolean | Vrai pour activer. Faux pour désactiver. |
Exemple :
' Activer le double buffer pour réduire les scintillements si la version d'Access est 2003
If
SysCmd
(
acSysCmdAccessVer) =
"11.0"
Then
oGdi.SetDoubleBufferXP
Me
XX-E. DragForm▲
Permet le déplacement du formulaire
Cette fonction permet de déplacer le formulaire même s'il n'a pas de barre de titre.
Exemple :
Paramètre | Type | Explication |
---|---|---|
pForm | Formulaire | Formulaire à déplacer |
' Remarque : Ne fonctionne pas sur l'événement Click
Private
Sub
Image0_MouseDown
(
Button As
Integer
, Shift As
Integer
, X As
Single
, Y As
Single
)
oGdi.DragForm
Me
End
Sub
XX-F. FontSizeToPixel▲
Conversion taille police en pixel
Convertit une taille de police de caractères en pixel pour la fonction DrawText.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pSize | Long ou Single | Taille de police |
[pObject]=Nothing | Object | Contrôle ou formulaire de référence |
XX-G. PixelToFontSize▲
Conversion taille police en points
Convertit une taille de police de caractères de pixels en points.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pPixel | Long ou Single | Taille en pixel |
[pObject]=Nothing | Object | Contrôle ou formulaire de référence |
XX-H. GetUserFormHandle▲
Identifiant d'un UserForm, d'une Frame ou d'une Page
Pour Excel, Word, PowerPoint.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pForm | Long | Objet control ou formulaire |
pClientArea | Boolean | Si Faux, la fonction retourne l'identifiant du UserForm (ou Frame ou Page). Si Vrai, la fonction retourne l'identifiant de la sous-fenêtre (du UserForm, de la Frame ou de la Page) sur laquelle on dessine. |
XX-I. GetClientHandle▲
Identifiant de la sous-fenêtre sur laquelle on dessine (=section).
Pour Access.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pImgCtrl | Control | Contrôle contenu dans la section de laquelle on veut l'identifiant. |
XX-J. PathIsImage▲
Test si un chemin est celui d'un fichier image valide.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pPath | String | Chemin du fichier. |
Retourne Vrai si le chemin est celui d'une image valide reconnue par Gdi+.
XX-K. GetControlPos▲
Lecture de la position d'un contrôle ou formulaire en pixels.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pObject | Object | Le contrôle ou formulaire. |
pX1, pY1, pX2, pY2 | Long ou Single | Les positions des points haut-gauche et bas-droite du rectangle contenant le contrôle. |
[pIncludeBorders]=False | Boolean | Mettre à Vrai (True) pour inclure les bordures. |
Retourne le décalage en pixel de l'image dans le contrôle.
C'est-à-dire les coordonnées en pixel par rapport au contrôle de l'origine (0,0) de l'image.
XX-L. ApplicationPath▲
Retourne le chemin de l'application (= du projet Office), y compris l'antislash final.
XX-M. UserData▲
Données utilisateurs.
Utilisez cette propriété pour attacher des données personnalisées à un objet clGdiplus.
XXI. Propriétés diverses▲
XXI-A. ImgObject▲
Image pour événements et dessin.
Type Object en écriture seule.
Défini un contrôle (ou un UserForm) par défaut.
Celui-ci sera utilisé par défaut par les procédures dessin Repaint*, et enverra des événements ImgMouseDblClick, ImgMouseDown, ImgMouseUp, ImgMouseMove au module de classe clGdiplus.
XXI-B. Self▲
Objet courant.
Type clGdiplus en lecture seule.
Renvoie l’objet courant. Utilisé dans un With…End With par exemple.
XXI-C. ImageWidth et ImageHeight▲
Taille de l'image en pixels
Type Long en lecture seule.
C'est la taille de l'image en mémoire.
XXI-D. DpiX et DpiY▲
Résolution de l'image (points par pouce).
Type Single en lecture / écriture.
XXI-E. ImageFormat▲
Format de l'image
Type EGdipImageFormat en lecture seule.
Dépend du format du fichier ouvert avec OpenFile.
Si l'image est créée avec CreateBitmap, le format est gdipFormatMemoryBMP.
XXI-F. ImageFormatText▲
Format de l'image en texte
Type string en lecture seule.
Valeurs possibles : Undefined / MemoryBMP / BMP / EMF / WMF / JPEG / PNG / GIF / TIFF / EXIF / ICON.
Dépend du format du fichier ouvert avec OpenFile.
Si l'image est créée avec CreateBitmap le format est MemoryBMP.
XXI-G. ImagePixelFormat▲
Format des pixels de l'image.
Type EGdipPixelFormat en lecture seule.
Pour savoir si l’image est en 4bpp, 8bpp, 32 bpp…
XXI-H. RefControl▲
Contrôle de référence pour coordonnées passées en points/twips
Type Control en lecture / écriture.
Si RefControl est défini, les fonctions acceptent des coordonnées passées en Twips (pour Access) ou en Points (Pour UserForm).
Pour annuler et repasser en pixels, affectez Nothing à cette propriété.
Exemple :
' Deux solutions identiques :
'
' 1 - Sans utiliser RefControl
oGdi.DrawPixel
oGdi.CtrlToImgX
(
X, Me.Image0
), oGdi.CtrlToImgY
(
Y, Me.Image0
), vbRed
'
' 2 - En utilisant RefControl
oGdi.RefControl
=
Me.Image0
oGdi.DrawPixel
X, Y, vbRed
oGdi.RefControl
=
Nothing
XXI-I. WrapX et WrapY▲
Décalage d'une image avec enroulement.
Type Long en lecture / écriture.
S'applique aux fonctions DrawImg et DrawBitmap.
XXI-J. TransparencyMode▲
Dessin des images avec ou sans transparence.
Type EGdipTransparencyMode en lecture / écriture.
S’applique au dessin de l’image, pas aux fonctions de dessin de formes et textes.
GdipTransparencySourceOver est la valeur par défaut.
GdipTransparencySourceCopy est plus rapide mais dessine les pixels sans les fusionner avec l'image sur laquelle on dessine.
XXI-K. HasTransparency▲
Support de la transparence pour l’image.
Type Boolean en lecture / écriture.
Cette propriété doit être à Vrai pour que les dessins puissent se faire avec transparence.
Elle s’applique aux fonctions de dessin de formes et textes, ainsi qu’à la fonction ReplaceColor.
XXI-L. AntialisingLevel▲
Niveau d'antialiasing.
Type Long en lecture / écriture.
Voir énumération EGdipAntialisingLevel.
XXI-M. LastTextBottom et LastTextRight▲
Positions en bas et à droite du dernier texte écrit.
Type Long ou Single en lecture / écriture.
XXI-N. MaxTextSize, MinTextSize et LastTextSize▲
Taille du texte ajusté.
Type Long ou Single en lecture / écriture.
Si MaxTextSize ou MinTextSize sont différents de 0, le texte va s'ajuster pour tenir dans le rectangle défini dans l'appel à DrawText.
LastTextSize contient alors la dernière taille du texte ajusté.
XXI-O. DrawClipRegion▲
Région limitant le dessin.
Type String en écriture seule.
La région spécifiée limite le dessin à l'intérieur de celle-ci, ou à l'extérieur si le paramètre pInclude est égal à False.
XXI-P. DrawClipRectangle▲
Rectangle limitant le dessin.
Paramètres :
Paramètre | Type | Explication |
---|---|---|
pX1,pY1,pX2,pY2 | Long ou Single | Les positions des points haut-gauche et bas-droite du rectangle. |
[pInclude]=True | Boolean | La région spécifiée limite le dessin à l'intérieur de celle-ci, ou à l'extérieur si le paramètre pInclude est égal à False. |
XXII. Remerciements▲
Merci à l'équipe Office de developpez.com pour ses relectures, commentaires et encouragements !
XXIII. Les téléchargements▲
XXIV. Annexe : adaptation du code pour passage à la version 3▲
La version 3.0 est une évolution majeure.
Dans ce tableau vous trouverez les modifications majeures à prendre en compte pour une montée de version depuis une version antérieure à la v3.0.
DpiX | Suppression du paramètre pImage et passage en Single |
DpiY | Suppression du paramètre pImage et passage en Single |
ImageFormat | Suppression du paramètre pImage |
ImageHeight | Suppression du paramètre pImage |
ImageWidth | Suppression du paramètre pImage |
RefControl | Passage de Control à Object |
GetBitmap | Renommé en SaveBitmap |
SetBitmap | Renommé en LoadBitmap |
GetImageArray | Renommé en SaveArray |
SetImageArray | Renommé en LoadArray |
GetIPictureDisp | Renommé en SaveIPictureDisp |
LoadBitmapFromControl | Renommé en LoadControl |
OpenFile | Renommé en LoadFile |
CreateBitmapForImage | Renommé en CreateBitmapForImg |
CloseFile | Renommé en CloseImage |
SaveFile | pFormat passe en énumération EGdipImageFormatSave |
KeepImage | Renommé en ImageKeep |
ResetImage | Renommé en ImageReset |
DeleteAllImages | Renommé en ImgsDelete |
DeleteImage | Renommé en ImgDelete |
GetImageBitmap | Renommé en ImageGetBitmap |
PixelToPointsX | Renommé en PixelsToPointsX |
PixelToPointsY | Renommé en PixelsToPointsY |
TextureAddFromImage | Renommé en TextureAddFromImg |
TextureDel | Renommé en TextureDelete |
DrawImage | Renommé en DrawImg et suppression du paramètre pAntialiase |
FillRegion | Renommé en RegionFill |
HatchRegion | Renommé en RegionHatch |
DeleteRegion | Renommé en RegionDelete |
DeleteAllRegions | Renommé en RegionsDelete |
RegionAddRegion | Suppression de la méthode ; utilisez RegionCombine |
GetRegionRect | Renommé en RegionGetRect |
FrameRegion | Renommé en RegionFrame ; pDash passe en énumération EGdipDashStyle |
ScaleRegion | Renommé en RegionScale |
TranslateRegion | Renommé en RegionTranslate |
RotateRegion | Renommé en RegionRotate |
TransformRegion | Renommé en RegionTransform |
DrawBitmap | Suppression du paramètre pAntialiase |
DrawText |
Suppression du paramètre pAntialiase ; utilisez TextRenderingHint Attention au décalage des paramètres ! |
DrawLine | pDash passe en énumération EGdipDashStyle ; suppression des paramètres pArrowLength et pStartAndEnd |
DrawRectangle | pDash passe en énumération EGdipDashStyle |
DrawRoundRectangle | DrawRoundRectangle |
DrawEllipse | pDash passe en énumération EGdipDashStyle |
DrawRoundRectangle | pDash passe en énumération EGdipDashStyle |
DrawPolygon | pDash passe en énumération EGdipDashStyle |
DrawCurve | pDash passe en énumération EGdipDashStyle |
DrawSVG | pDash passe en énumération EGdipDashStyle |
DrawSmooth | Remplacé par SmoothingMode |
DrawWithoutTransparency | Remplacé par TransparencyMode |
GetPixels | Renommé en SavePixels |
SetPixels | Renommé en LoadPixels |
Resize | Suppression du paramètre pAntialiase |
Crop | Remplacement de pWidth et pHeight par pX2 et pY2 |
RepaintControlNoFormRepaint | Renommé en RepaintNoFormRepaint |
RepaintControl | Renommé en Repaint |
FastRepaint | Renommé en RepaintFast |
FastRepaintSetCorrection | Renommé en RepaintFastSetCorrection |
FastRepaintSetClipControl | Renommé en RepaintFastSetClipControl |
FastRepaintSetClipRectangle | Renommé en RepaintFastSetClipRectangle |
FastRepaintSetClipRegion | Renommé en RepaintFastSetClipRegion |
FastRepaintResetClip | Renommé en RepaintFastResetClip |
FastRepaintReplace | Remplacé par RepaintFastTransparency |
WorldRotate | pRight est Vrai par défaut |
WorldTranslate | pRight est Vrai par défaut |
WorldScale | pRight est Vrai par défaut |
GetControlSize | Renommé en GetControlPos |
ImageListExists | Renommé en ImgExists |
ImageListHeight | Utilisez Img("NomImage").ImageHeight |
ImageListWidth | Utilisez Img("NomImage").ImageWidth |
ImageListGetBitmap | Utilisez Img("NomImage").SaveBitmap |
ImageListGetIPictureDisp | Utilisez Img("NomImage").SaveIPictureDisp |
ImageListAddFromArray | Utilisez ImgNew("NomImage").LoadArray |
ImageListAddFromControl | Utilisez ImgNew("NomImage").LoadControl |
ImageListAddPictureMask | Utilisez ImgNew("NomImage").LoadPictureMask |
ImageListAddBitmap | Utilisez ImgNew("NomImage").LoadBitmap |
ImageListAdd | Utilisez ImgNew("NomImage").LoadFile |
ImageListAddRect | Utilisez ImgNew("NomImage").CreateBitmap et dessinez la portion d'image souhaitée |
ImageListNew | Utilisez ImgNew("NomImage").CreateBitmap |
ImageListDelAll | Utilisez ImgsDelete |
ImageListDel | Utilisez ImgDelete |
ImageListClone | Utilisez ImgClone |
ImageListDrawBitmap | Utilisez Img("NomImage").DrawBitmap |
ImageListDrawImage | Utilisez Img("NomImage").DrawImg |
ImageListDrawPixel | Utilisez Img("NomImage").DrawPixel |
ImageListDrawPolygon | Utilisez Img("NomImage").DrawPolygon |
ImageListDrawCurve | Utilisez Img("NomImage").DrawCurve |
ImageListDrawSVG | Utilisez Img("NomImage").DrawSVG |
ImageListDrawText | Utilisez Img("NomImage").DrawText |
ImageListGetPixels | Utilisez Img("NomImage").SavePixels |
ImageListGetPixel | Utilisez Img("NomImage").GetPixel |
ImageListSetPixels | Utilisez Img("NomImage").LoadPixels |
ImageListRotate | Utilisez Img("NomImage").Rotate |
ImageListGifSetFrame | Utilisez Img("NomImage").GifSetFrame |
ImageListGifGetFrameCount | Utilisez Img("NomImage").GifGetFrameCount |
ImageListGifGetFrameDelay | Utilisez Img("NomImage").GifGetFrameDelay |
ImageListRotateFlip | Utilisez Img("NomImage").RotateFlip |
ImageListResize | Utilisez Img("NomImage").Resize |
ImageListCrop | Utilisez Img("NomImage").Crop |
BarInitialize | Remplacé par BarNew et BarObject |
BarRelease | Remplacé par BarDelete |
BarMouseDown | Ajout du paramètre BarName |
BarMouseUp | Ajout du paramètre BarName |
BarMouseMove | Ajout du paramètre BarName |
BarMouseDblClick | Ajout du paramètre BarName |
BarOnRefreshNeeded | Ajout des paramètres BarName et MouseUp |