I. Introduction▲
GDI et GDI+ sont des librairies 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 librairie 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 librairie GDI, Microsoft a développé une autre librairie : GDI+ (ou GdiPlus).
Cette seconde librairie 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 utilisations.
Exemples d'images obtenues grâce à cette classe :
La carte de France est dessinée à partir des coordonnées des départements.
Les départements sont encadrés au passage de la souris, et on peut les sélectionner en cliquant dessus.
Des cercles de couleur matérialisent l'emplacement de certaines villes.
Les aiguilles de l'horloge se déplacent en fonction de l'heure.
Si on déplace une aiguille avec la souris, l'heure change.
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 ;
- la classe est développée sur Access2007 au format Access 2000; j'essaye autant que je peux d'assurer la meilleure compatibilité avec les autres versions ;
- dans tous mes exemples 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 Vrai (True) si succès).
II-B. Pré-requis▲
Il est nécessaire de posséder la librairie GDI+ de Microsoft.
Cette librairie est incorporée à Windows à partir de XP.
Si besoin, la dernière version de la librairie 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 => ) :
Télécharger le module de classe
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
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.
Elle peuvent être modifiées indépendamment de l'image principale et dessinées sur cette dernière par exemple.
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ètres :
Paramètre |
Type |
Explication |
---|---|---|
pFile |
String |
Chemin complet du fichier image |
[pThumbNail]=False |
Boolean |
Mettre à True pour ouvrir la miniature Exif |
[pIcon]=GdipNoIcon |
EGdipIconType |
- GdipNoIcon = Charge le fichier normalement ; - GdipSmallIcon = Charge la petite icone associée au fichier ; - GdipLargeIcon = Charge la grande icone associée au fichier. 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 ficheir Windows. |
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ètres :
Paramètre |
Type |
Explication |
---|---|---|
pWidth |
Long |
Largeur de l'image en pixels |
pHeight |
Long |
Hauteur de l'image en pixels |
[pResolution] = 96 |
Single |
Resolution de l'image en points par pouce (96 par défaut) |
III-D. CreateBitmapForControl▲
Création d'une image vierge.
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ètres :
Paramètre |
Type |
Explication |
---|---|---|
pObject |
Object |
Contrôle ou formulaire qui détermine la taille et le format de l'image. |
III-E. CreateBitmapForImg▲
Création d'une image vierge.
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ètres :
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ètres :
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ètres :
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 pû être sauvegardé.
Paramètres :
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) Ne spécifiez pas ce paramètre pour garder la qualité de l'image d'origine. Ou type d'EMF pour le format EMF 1 = EMF(par défaut); 2 = EMF+; 3=EMF Dual. |
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 Jpeg et si ses dimensions sont toutes deux multiples de 16.
Paramètres :
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ètres :
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ètres :
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ètres :
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ètres :
Paramètre |
Type |
Explication |
---|---|---|
pPicture |
Long ou LongLong |
Identifiant d'un bitmap gdi32 |
[pMask] = 0 |
Long ou LongLong |
Identifiant d'un masque gdi32 |
[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ètres :
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
cloner
deux
fois
l'image,
l'image
intérmé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 pour un exemple d'utilisation.
Paramètres :
Paramètre |
Type |
Explication |
---|---|---|
pArray |
Tableau de Byte |
Données de l'image. Eequivalent 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). |
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 pour un exemple d'utilisation.
Paramètres :
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ètres :
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ètres :
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 icones.
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ètres :
Paramètre |
Type |
Explication |
---|---|---|
pObject |
Object |
Contrôle ou formulaire dans lequel est injectée l'image |
[pResizeBefore]=False |
Boolean |
Si Vrai, redimensionne l'image au préalable. |
[pResizeAntialise]=False |
Boolean |
Anti-aliasing lors du redimensionnement. |
[pUseEMF]=False |
Boolean |
Pour ACCESS uniquement : utilisation du type d'image EMF. A 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ètres :
Paramètre |
Type |
Explication |
---|---|---|
pObject |
Object |
Contrôle ou formulaire dans lequel est injecté l'image |
[pResizeBefore]=False |
Boolean |
Si Vrai, redimensionne l'image avant |
[pResizeAntialise]=False |
Boolean |
Anti-aliasing lors du redimensionnement |
[pUseEMF]=False |
Boolean |
Pour ACCESS uniquement : Utilisation du type d'image EMF. A 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ètres :
Paramètre |
Type |
Explication |
---|---|---|
pObject |
Object |
Contrôle ou formulaire déterminant l'emplacement de l'image |
[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ètres :
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'images et de ne pas dessiner par dessus si on utilise la fonction RepaintFast.
Il est possible de combiner plusieurs contrôles en appelant plusieurs fois la fonction.
Paramètres :
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ètres :
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ètres :
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 la cas par exemple d'une modification de taille de contrôle ou de positionnement / alignement de l'image dans le contrôle.
V. Modification de l'image principale▲
V-A. Clear▲
Réinitialise l'image principale d'une couleur unie.
Paramètres :
Paramètre |
Type |
Explication |
---|---|---|
[pColor] = vbBlack |
Long |
Couleur de remplissage |
[pAlpha] = 255 |
Integer |
Transparence (0 --> 255) |
V-B. FillColor▲
Rempli l'image principale d'une couleur.
Paramètres :
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
)
V-C. ReplaceColor▲
Remplace une couleur de l'image par une autre.
Paramètres :
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
)
V-D. ApplyColorMatrix▲
Applique une matrice de couleurs à l'image.
Paramètres :
Paramètre |
Type |
Explication |
---|---|---|
pRed, pGreen, pBlue, pAlpha |
Variant = Tableaux de single de dimension 5 |
1ère à 4ème valeur: Multiplicateurs des composantes rouge, vert, bleu et alpha 5ème valeur : Valeur à ajouter Les valeurs doivents ê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
)
V-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ètres :
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
)
V-F. ScaleI▲
Redimensionne l'image.
Les paramètres sont des multiplicateurs.
Paramètres :
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
)
V-G. Crop▲
Découpe l'image.
Paramètres :
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
)
V-H. Rotate▲
Rotation de l'image principale.
Paramètres :
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
)
V-I. RotateFlip▲
Rotation / Miroir de l'image.
Paramètres :
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)
VI. Dessin (formes, textes, images)▲
Le dessin tient compte des transformations définies par les fonctions World*.
VI-A. DrawPixel▲
Dessine un pixel.
Paramètres :
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
)
VI-B. DrawLine▲
Dessine une ligne.
Paramètres :
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 |
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 pour cette ligne. |
Exemple :
lReturn =
oGdi.
DrawLine
(0
, 0
, oGdi.
ImageWidth
, oGdi.
ImageHeight
, vbBlue
, 4
)
VI-C. DrawRectangle▲
Dessine un rectangle.
Paramètres :
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
)
VI-D. DrawRoundRectangle▲
Dessine un rectangle avec coins arrondis.
Paramètres :
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 |
VI-E. DrawEllipse▲
Dessine une ellipse.
Paramètres :
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,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 |
[pBackColor] = -1 |
Long |
Couleur de remplissage Laisser -1 pour une ellipse 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) |
[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
mileu
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
)
VI-F. DrawPolygon▲
Dessine un polygone.
Paramètres :
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 |
VI-G. DrawCurve▲
Dessine une ou plusieurs courbes de Bézier.
Paramètres :
Paramètre |
Type |
Explication |
---|---|---|
pPoints |
Variant |
Tableau de points (Long ou Single) formant la courbe: Array(X1,Y1,X2,Y2,X3,Y3,...). Necessite 1 point de depart + 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 |
VI-H. DrawCardinal▲
Dessine une ou plusieurs courbes cardinales.
Paramètres :
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 |
VI-I. 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ètres :
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
20
h
50
L
100
100
Q
120
120
100
150
70
180
z
"
)
VI-J. DrawText▲
Dessine du texte.
Paramètres :
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
)
VI-K. 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.
VI-L. 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ètres :
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'autreen 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. |
VI-M. DrawBitmap▲
Dessine un bitmap Gdiplus sur l'image.
Paramètres :
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'autreen 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. |
VI-N. DrawControl▲
Dessine un contrôle sur l'image.
Paramètres :
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 coordoné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 |
VI-O. DrawTexture▲
Dessine une texture sur l'image.
Paramètres :
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 |
VI-P. PenAlignMode▲
Alignement du crayon
Type Long en lecture / écriture.
Voir énumération EGdipPenAlignMode
S'applique aux fonctions de dessin (rectangle, polygone, ellipse, ...).
VI-Q. 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égion (RegionFrame).
VI-R. 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égion (RegionFrame).
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.
l 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 pixels, 2 pixels dessinés, espace de 1 pixel.
ogdi.
DrawDashCustom
=
Array
(10
, 1
, 2
, 1
)
ogdi.
DrawLine
50
, 50
, 200
, 200
, vbRed
, 2
, GdipDashDASHCUSTOM
VI-S. LineStart▲
Type de début de ligne.
Type EGdipLineCap en lecture / écriture.
VI-T. LineEnd▲
Type de fin de ligne.
Type EGdipLineCap en lecture / écriture.
VI-U. LineJoin▲
Type de jointure de ligne.
Type EGdipLineJoin en lecture / écriture.
VI-V. LineJoinMiterLimit▲
Limite aux jointures de ligne.
Type Single en lecture / écriture.
VI-W. LineArrowLength▲
Taille des flèches de début ou fin de ligne.
Type Single en lecture / écriture.
VI-X. LineArrowFill▲
Remplissage ou non des flèches de début ou fin de ligne.
Type Boolean en lecture / écriture.
VII. 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.
Utilisez ensuite la fonction DrawImg pour dessiner une de ces images sur l'image principale.
VII-A. ImgNew▲
Crée une image secondaire vierge.
Paramètres :
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 |
VII-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ètres :
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 |
VII-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ètres :
Paramètre |
Type |
Explication |
---|---|---|
[pName] = "" |
String |
Nom de l'image |
pWidth |
Long |
Largeur de l'image |
pHeight |
Long |
Hauteur de l'image |
VII-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 |
VII-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 |
VII-F. Imgs▲
Collection d'image secondaires.
Cette propriété retourne une collection d'images de type clGdiplus.
VII-G. ImgDelete▲
Supprime une image secondaire de la liste d'images.
Paramètres :
Paramètre |
Type |
Explication |
---|---|---|
pName |
String |
Nom de l'image |
VII-H. ImgsDelete▲
Supprime plusieurs images secondaires de la liste d'images.
Paramètres :
Paramètre |
Type |
Explication |
---|---|---|
[pName] = "*" |
String |
Nom des images. Le caractères * est accepté. |
VII-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 |
VII-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'autreen 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.
VII-K. ImgName▲
Nom de l'image secondaire.
Cette propriété retourne le nom de l'image courante si c'est une image secondaire.
VII-L. Parent▲
Parent de l'image secondaire.
Cette propriété retourne un objet de type clGdiplus.
VIII. 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.
VIII-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. |
VIII-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. |
VIII-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. |
VIII-D. WorldReset▲
Annule les transformations.
VIII-E. WorldPush▲
Sauvegarde les transformations.
Restaurez avec WorldPop.
Paramètres :
Paramètre |
Type |
Explication |
---|---|---|
[pMatrix] = "default" |
String |
Nom de la matrice à sauvegarder. |
VIII-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. |
VIII-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. |
VIII-H. 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. |
VIII-I. 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. |
IX. Régions / collisions▲
IX-A. RegionAppend▲
Type Booléen en lecture / écriture.
Utiliser ce paramètre pour cumuler les régions créées avec le même nom.
IX-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 |
IX-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 |
IX-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 |
IX-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 |
IX-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 |
IX-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 |
IX-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 |
IX-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 |
IX-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) |
IX-K. Regions▲
Renvoie une collection des noms de régions.
IX-L. RegionDelete▲
Supprime une région.
Paramètres :
Paramètre |
Type |
Explication |
---|---|---|
pRegion |
String |
Nom de la région à supprimer |
IX-M. RegionsDelete▲
Supprime toutes les régions spécifiées.
Paramètres :
Paramètre |
Type |
Explication |
---|---|---|
[pRegion]="*" |
String |
Nom des regions à supprimer, peut contenir un joker (*) |
IX-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 |
Epaisseur 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 |
IX-O. RegionFill▲
Remplit une region 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) |
IX-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) |
IX-Q. FillMode▲
Mode de remplissage.
Type EGdipFillMode en lecture / écriture.
IX-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
'
Region
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
IX-S. GetRegionXYLine▲
Identifie la region 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
'
Region
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
IX-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.
IX-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.
IX-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. |
IX-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. |
IX-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.
IX-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.
IX-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.
IX-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 |
IX-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 |
IX-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 |
IX-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 |
IX-AE. RegionTransform▲
Transforme une région.
Paramètres :
Paramètre |
Type |
Explication |
---|---|---|
pRegion |
String |
Nom de la région |
[pMatrix] = "" |
String |
Nom d'une matrice. Ou matrice courante si non précisé. |
IX-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. |
IX-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 |
IX-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 A 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 |
IX-AI. ResetFormRegion▲
Rétablit l'affichage du formulaire complet.
Paramètres :
Paramètre |
Type |
Explication |
---|---|---|
pForm |
Formulaire |
Le formulaire à rétablir |
X. Sauvegarde de l'image principale en mémoire▲
X-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.
X-B. ImageReset▲
Rétablit l'image de la mémoire
Paramètres :
Paramètre |
Type |
Explication |
---|---|---|
[pImage]="Default" |
String |
Nom de la sauvegarde |
X-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 |
X-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 |
X-E. ImagesDelete▲
Supprime toutes les images principales sauvegardées en mémoire.
Paramètres :
X-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. |
XI. Données Exif▲
XI-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.
XI-B. SetExifData▲
Ecrit 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.
XI-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) |
XI-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 |
XII. Gif animés▲
XII-A. GifSetFrame▲
Change l'image courante d'un GIF animé.
Paramètres :
Paramètre |
Type |
Explication |
---|---|---|
pFrame |
Long |
Numéro de l'image |
XII-B. GifGetFrameCount▲
Nombre d'images d'un GIF animé.
XII-C. GifGetFrameDelay▲
Delais d'affichage des images d'un GIF animé.
Paramètres :Renvoie un tableau contenant autant de délais que d'images dans le GIF.
XIII. Textures▲
Les textures dans Gdi+ ne se comportent pas comme les textures de 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.
XIII-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 |
XIII-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 |
XIII-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 |
XIII-D. TextureDelete▲
Supprime une texture.
Paramètres :
Paramètre |
Type |
Explication |
---|---|---|
pName |
String |
Nom de la texture |
XIII-E. TextureTranslate▲
Déplace une texture.
Paramètres :
Paramètre |
Type |
Explication |
---|---|---|
pName |
String |
Nom de la texture |
pDx, pDy |
Single |
Déplacements en pixels |
XIII-F. TextureWidth▲
Largeur une texture.
Renvoie la largeur en pixel.
Paramètres :
Paramètre |
Type |
Explication |
---|---|---|
pName |
String |
Nom de la texture |
XIII-G. TextureHeight▲
Hauteur une texture.
Renvoie la hauteur en pixel.
Paramètres :
Paramètre |
Type |
Explication |
---|---|---|
pName |
String |
Nom de la texture |
XIII-H. 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).
XIII-I. 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égion (RegionFrame).
XIV. Polices de caractères▲
XIV-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 Gdiplus où elle a été chargée.
Paramètres :
Paramètre |
Type |
Explication |
---|---|---|
pFile |
String |
Chemin du fichier de la texture |
XIV-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 Gdiplus 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 |
XIV-C. FontsPrivateDelete▲
Supprime toutes les polices de caractères privées.
Pas de paramètre
XIV-D. FontsEnumerate▲
Enumère les polices de caractères.
Paramètres :
Paramètre |
Type |
Explication |
---|---|---|
pFonts |
Collection |
Collection qui contiendra la liste des polices de caractères. |
XV. Conversion de coordonnées▲
XV-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. |
XV-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. |
XV-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
XV-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)
XVI. Autres fonctions diverses▲
XVI-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
XVI-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 |
XVI-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
XVI-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
XVI-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
XVI-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 |
XVI-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 |
XVI-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. |
XVI-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. |
XVI-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+.
XVI-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.
XVI-L. ApplicationPath▲
Retourne le chemin de l'application (= du projet Office), y compris l'antislash final.
XVII. Propriétés diverses▲
XVII-A. ImageWidth et ImageHeight▲
Taille de l'image en pixels
Type Long en lecture seule.
C'est la taille de l'image en mémoire.
XVII-B. 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.
XVII-C. 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.
XVII-D. 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
XVII-E. WrapX et WrapY▲
Décalage d'une image avec enroulement.
Type Long en lecture / écriture.
S'applique aux fonctions DrawImg et DrawBitmap.
XVII-F. TransparencyMode▲
Dessin des images avec ou sans transparence.
Type EGdipTransparencyMode en lecture / écriture.
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.
XVII-G. AntialisingLevel▲
Niveau d'antialiasing.
Type Long en lecture / écriture.
Voir énumération EGdipAntialisingLevel.
XVII-H. LastTextBottom et LastTextRight▲
Positions en bas et à droite du dernier texte écrit.
Type Long ou Single en lecture / écriture.
XVII-I. 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é.
XVII-J. DrawClipRegion▲
Region 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.
XVII-K. 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. |
XVII-L. DpiX et DpiY▲
Résolution de l'image (points par pouce).
Type Single en lecture / écriture.
XVIII. Conclusion▲
La librairie gdiplus.dll offre de nombreuses possibilités graphiques que l'on peut exploiter dans Access.
Merci à l'équipe Office de developpez.com pour ses relectures, commentaires et encouragements !