;
Structure déclarée dans le fichier GdiPlusTypes.h
; Spécifie les attributs d'un bitmap.
BitmapData est utilisé par les fonctions GdipBitmapLockBits()
et GdipBitmapUnlockBits().
nWidth.i
Largeur
en pixels du Bitmap. Cela peut également être représenté comme le nombre
de pixels dans une ligne de numérisation.
nHeight.i
Hauteur
en pixels du Bitmap. Il y est également parfois fait référence en tant que
nombre de lignes de numérisation.
Stride.l
Largeur
de numérisation du Bitmap. Offset en octets, entre les lignes de numérisation
consécutives du bitmap. Si le pas est positif, le bitmap est de haut en
bas. Si le pas est négatif, le bitmap est de bas en haut.
PixelFormat.i
Format
des informations en pixels du Bitmap qui a retourné cet élément
BitmapData.
*Scan0
Adresse
des premières données en pixels du bitmap (pointeur sur la première ligne
de numérisation du bitmap (index 0)).
*Reserved.integer
Réservé. Ne pas utiliser.
EndStructure
Structure
CharacterRange
;
Structure déclarée dans le fichier GdiPlusTypes.h
; Spécifie une plage de positions de caractères dans une chaîne.
First.l
Spécifie la première position de la plage.
Length.l
Spécifie le nombre de positions dans la plage.
EndStructure
Structure ColorMapGdiplus (= Structure
ColorMap)
;
Structure déclarée dans le fichier GdiplusColorMatrix.h
;
Structure pré-déclarée dans le fichier résident
PB Windows.res mais avec des noms d'éléments
différents.
; Structure renommée ColorMapGdiplus pour Gdi+.
oldColor.i
Couleur
originale.
newColor.i
La nouvelle couleur.
EndStructure
Structure ColorMatrix
;
Structure déclarée dans le fichier GdiplusColorMatrix.h
; Structure déclarée sous la forme d'un tableau à deux
dimensions.
; La structure ColorMatrix contient une matrice 5×5
de nombres flottants simple précision.
; Plusieurs fonctions ImageAttributes ajustent les couleurs des images en
utilisant une matrice de couleur.
M00.f
ligne 0 colonne 0.
M01.f
ligne 0 colonne 1.
M02.f
ligne 0 colonne 2.
M03.f
ligne 0 colonne 3.
M04.f
ligne 0 colonne 4.
M10.f
ligne 1 colonne 0.
M11.f
ligne 1 colonne 2.
M12.f
ligne 1 colonne 2.
M13.f
ligne 1 colonne 3.
M14.f
ligne 1 colonne 4.
M20.f
ligne 2 colonne 0.
M21.f
ligne 2 colonne 1.
M22.f
ligne 2 colonne 1.
M23.f
ligne 2 colonne 3.
M24.f
ligne 2 colonne 4.
M30.f
ligne 3 colonne 0.
M31.f
ligne 3 colonne 1.
M32.f
ligne 3 colonne 2.
M33.f
ligne 3 colonne 3.
M34.f
ligne 3 colonne 4.
M40.f
ligne 4 colonne 0.
M41.f
ligne 4 colonne 1.
M42.f
ligne 4 colonne 2.
M43.f
ligne 4 colonne 3.
M44.f
ligne 4 colonne 4.
EndStructure
Structure
ColorPalette
;
Structure déclarée dans le fichier GdiplusPixelFormats.h
; La structure ColorPalette définit un choix de couleurs qui composent
une palette de couleus. Les couleurs sont des couleurs 32 bits au format ARGB.
Flags.i
Count.i
Nombre d'élément du tableau pointé par *Entries.long.
*Entries.integer
Tableau de couleurs ARGB.
EndStructure
Structure
EncoderParameter
;
Structure déclarée dans le fichier GdiPlusImaging.h
; Les éléments EncoderParameter permettent
de passer un tableau de valeurs à un encodeur d'image et permet aussi de recevoir
une liste de valeurs possibles prises en charge par un paramètre particulier
d'un encodeur d'image particulier.
guid.GUID
Identifie la catégorie du paramètre.
Les différents GUID (Image
encoder GUID) qui représentent les catégories de paramètres
(EncoderCompression, EncoderColorDepth, etc.)
sont définis dans le fichier Gdiplusimaging.h.
numberOfValues.i
Nombre de valeurs du tableau pointé par le membre *value de
cette structure.
type.i
Identifie le type de données du paramètre. L'énumération EncoderParameterValueType définit plusieurs types possibles de valeur.
*value
Pointeur sur un tableau de valeurs. Chaque valeur a le type indiqué
par l'élément 'type.l' de la structure.
EndStructure
Structure EncoderParameters
;
Structure déclarée dans le fichier GdiPlusImaging.h
; La structure permet de stocker des éléments
de type EncoderParameter (paramètres du codec).
Count.i
Nombre
de structures EncoderParameter dans le tableau (élément Parameter.EncoderParameter).
Parameter.EncoderParameter[1]
Tableau
d'un élément EncoderParameter (voir ci-dessus).
EndStructure
Si le nombre de structures EncoderParameter est supérieur
à 1, vous devez allouer assez de mémoire pour contenir toutes
les structures EncoderParameter qui seront dans le tableau. Par exemple,
si vous avez cinq structures EncoderParameter, vous devriez utiliser
un code semblable à celui-ci mais les éléments des structure
de la boucle for i devront avoir les valeurs nécessaire à votre
code -ce qui est entre With *Parameter
et EndWith :
; nombre de structures contenues dans le tableau de la structure EncoderParameters
Nb_EncoderParameter = 5
; allocation mémoire necessaire pour les 5 éléments, on passe par un tableau*memory = AllocateMemory(SizeOf(EncoderParameters) + ((Nb_EncoderParameter-1) * SizeOf(EncoderParameter)))
; on teste que la mémoire est bien allouée
If *memory
; déclaration d'un pointeur et *Params.EncoderParameters pointe la mémoire allouée *Params.EncoderParameters = *memory
; on définit le nombre d'éléments du tableau d'encodeur*Params\Count = Nb_EncoderParameter
; pour permettre l'accès aux 5 éléments, on calcule l'adresse*AdresseBase = *memory + OffsetOf(EncoderParameters\Parameter) ; + OffsetOf(Count) car le tableau commence après l'élément Count
; mettre les valeurs des 5 éléments avec une boucle, c'est un exemple
For i = 0 To *Params\Count-1
Debug i*Parameter.EncoderParameter = *AdresseBase + (i * SizeOf(EncoderParameter))
With *Parameter
CopyMemory(?EncoderSaveFlag, \guid, SizeOf(guid))
\NumberOfValues = 1
\Type = #EncoderparameterValueTypeLong ; valeur à personnaliser
\Value = @Valeurparametre
EndWith
Next i
; ... ; code
EndIf
; ... ; code
; libère la mémoire
If *memory
FreeMemory(*memory)
*memory = 0
EndIf
End
DataSection
;/ EncoderSaveFlag
EncoderSaveFlag :
Data.l $292266FC
Data.w $AC40, $47BF
Data.b $8C, $FC, $A8, $5B, $89, $A6, $55, $DE
EndDataSection |
Structure
EnhmetaHeader3
;
Structure déclarée dans le fichier GdiPlusMetaHeader.h
; La structure EnhmetaHeader3 contient des données
des métafichiers améliorés (Enhanced Metafile =EMF) incluant
les dimensions de l'image du métafichier, le nombre d'enregistrements du
métafichier et la résolution du périphérique
sur lequel le métafichier a été créé (voir plus d'informations ici).
iType.i
Type des enregistrements. Ce membre doit toujours valoir #EMR_HEADER
nSize.i
Taille
de la structure, en octets. Cette valeur doit être supérieure
à la valeur retournée par SizeOf(ENHMetaHeader3).
rclBounds.RECTL
Dimensions
en unités du périphérique, du plus petit rectangle
qui peut être dessiné autour de l'image stockée dans
le métafichier.
rclFrame.RECTL
Dimensions
en unités valant 0,01 millimètres, du rectangle qui entoure
l'image stockée dans le métafichier.
dSignature.i
Signature
par mot double (DWORD). Ce membre doit valoir #ENHMETA_SIGNATURE.
nVersion.i
Version
du format du métafichier. La valeur de la version courante est $10000.
nBytes.i
Taille
en octets du métafichier EMF.
nRecords.i
Nombre
d'enregistrements du métafichier EMF
nHandles.w
Nombre
de handles dans la table de handles des métafichiers EMF (l'index
zéro dans la table est réservé.)
sReserved.w
Paramètre
réservé (doit être à zéro)
nDescription.i
Nombre
de caractères du tableau qui contient la chaîne descriptive
du métafichier EMF. Ce membre doit être mis à
zéro si le métafichier EMF ne contient pas de chaîne
descriptive
offDescription.i
Offset
à partir du début de la structure EnhMetaHeader3 jusqu'à
la chaîne descriptive du contenu du métafichier EMF.
Ce membre doit être mis à zéro si le métafichier EMF ne contient pas de chaîne descriptive.
nPalEntries.i
Nombre
d'entrées de la palette du métafichier EMF
szlDevice.SIZEL
Résolution
du périphérique de référence, en pixels
szlMillimeters.SIZEL
Résolution
du périphérique de référence, en millimètres
EndStructure
Structure
FontFamily
;
Structure non déclarée sous cette forme mais utilisée
sous cette forme avec les exemples PB (c'est une class Gdi+)
*FontFamily
EndStructure
Structure
GdiplusStartupInput
;
Structure déclarée dans le fichier GdiPlusInit.h
; La structure GdiplusStartupInput contient un bloc
d'arguments qui sont nécessaires à la fonction GdiplusStartup().
GdiPlusVersion.i
Indique
la version de Microsoft Windows GDI+. Doit être mis à 1.
*DebugEventCallback.DebugEventProc
Pointeur
sur une fonction callback que GDI+ peut appeler, en mode débogage,
pour donner des alertes et avertissements. Ce paramètre peut être
mis à #NULL s'il n'est pas utilisé.
SuppressBackgroundThread.i
Valeur
booléenne qui spécifie s'il faut supprimer ou non le thread en tache de
fond de GDI+. Si vous mettez ce membre à #True,
la fonction GdiplusStartup() retourne (dans son paramètre de sortie output.GdiplusStartupOutput)
un pointeur sur une fonction hook et un pointeur sur une fonction unhook
. Vous devez appeler ces fonctions correctement pour remplacer le thread
de fond. Si vous ne voulez appelez directement ces fonctions hook et unhook,
mettez ce paramètre à #False.
SuppressExternalCodecs.i
Valeur booléenne qui spécifie si GDI+ supprime les codec d'image externes.
La version 1.0 de GDI+ ne supporte pas les codec externes d'image, ce paramètre
est ignoré.
EndStructure
Structure
GdiplusStartupOutput
;
Structure déclarée dans le fichier GdiPlusInit.h
; La fonction GdiplusStartup() utilise la structure GdiplusStartupOutput pour retourner (via le paramètre
de sortie output.GdiplusStartupOutput) un pointeur sur une fonction hook
et un pointeur sur une fonction unhook. Si vous positionnez le membre SuppressBackgroundThread
du paramètre d'entrée à #True de la fonction GdiplusStartup(),
vous êtes responsables de l'appel de ces fonctions pour remplacer le thread
de fond de Microsoft Windows GDI+.
*NotificationHook.NotificationHookProc
Ce paramètre reçoit
un pointeur sur une fonction hook.
*NotificationUnhook.NotificationUnhookProc
Ce
paramètre reçoit un pointeur sur une fonction unhook.
EndStructure
Structure
ImageCodecInfo
;
Structure déclarée dans le fichier GdiPlusImaging.h
; Une variable ImageCodecInfo
stocke des informations sur un codec d'image (encodeur/décodeur).
GDI+ fournit plusieurs codecs d'image intégrés. Vous pouvez
obtenir des informations sur ces codecs en utilisant la fonction GetImageEncoders()
ou la fonction GetImageDecoders().
Chacune de ces fonctions renvoie un tableau d'éléments ImageCodecInfo,
un pour chaque encodeur ou décodeur disponible.
clsid.CLSID
Identificateur
du codec (encodeur/decodeur).
formatID.GUID
Identificateur
du format de fichier. Les GUID qui identifient les différents formats
de fichier (ImageFormatBMP, ImageFormatEMF etc.) sont définis dans
le fichier GdiPlusMetaHeader.h.
codecName.s
Chaîne
au format unicode qui contient le nom du codec.
dllName.s
Chaîne
au format unicode qui contient le nom du chemin de la DLL dans laquelle
réside le codec. Si le codec n'est pas dans une DLL, ce paramètre
vaut #Null.
formatDescription.s
Chaîne
au format unicode qui contient le nom du format de fichier utilisé
par le codec.
filenameExtension.s
Chaîne
au format unicode qui contient tous les noms d'extension de fichier associés
au codec. Les extensions sont séparés par des points-virgule.
mimeType.s
Chaîne
au format unicode qui contient le nom du type MIME (Multipurpose
Internet Mail Extensions) du codec.
flags.i
Valeur
de 32 bits (long) utilisée pour stocker des informations supplémentaires
sur le codec. Ce flag contient une combinaison des éléments
de l'énumération ImageCodecFlags.
version.i
Numéro
de version du codec.
sigCount.i
Nombre
entier qui indique le nombre de signatures utilisé par le format
de fichier associé au codec.
sigSize.i
Nombre
entier qui indique le nombre d'octets de chaque signature.
*sigPattern.byte
Pointeur
sur un tableau d'octets à deux dimensions qui représente la
signature du codec.
*sigMask.byte
Pointeur
sur un tableau d'octets à deux dimensions qui contient un masque
pour chaque signature qui peut être utilisé comme filtre.
EndStructure
Structure MatrixOut
; Utilisé principalement avec la fonction des matrices GdipGetMatrixElements().
m11.f
Valeur de l'élément à l'intersection de la première ligne et de la première colonne.
Ce paramètre représente le facteur de mise à l'échelle selon l'axe X (scale).
m12.f
Valeur de l'élément à l'intersection de la première ligne et de la deuxième colonne.
Ce paramètre représente le facteur de rotation, coordonnée X (rotate).
m21.f
Valeur de l'élément à l'intersection de la deuxième ligne et de la première colonne.
Ce paramètre représente le facteur de rotation, coordonnée Y (rotate).
m22.f
Valeur de l'élément à l'intersection de la deuxième ligne et de la deuxième colonne.
Ce paramètre représente le facteur de mise à l'échelle selon l'axe Y (scale).
dx.f
Valeur de l'élément à l'intersection de la troisième ligne et de la première colonne.
Ce paramètre représente la translation selon l'axe X (translate).
dy.f
Valeur de l'élément à l'intersection de la troisième ligne et de la deuxième colonne.
Ce paramètre représente la translation selon l'axe Y (translate).
EndStructure
Structure
MetafileHeader
;
Structure déclarée dans le fichier GdiPlusMetaHeader.h
; La structure MetafileHeader stocke des propriétés
d'un métafichier (voir
plus d'informations ici).
Type.i
Elément
de l'énumération MetafileType qui indique le type du métafichier.
Size.i
Taille
en octets du métafichier.
Version.i
Version
du métafichier. La version de métafichier indique si le métafichier
est un métafichier EMF, EMF+ ou WMF. Les fichiers EMF ont toujours
le numéro de version égal à $10000.
Les fichiers EMF+ ont le numéro de version égal à $DBC01001.
Les fichiers WMF ont généralement le numéro de version
égal à $300 mais des versions
de fichiers plus anciennes peuvent valoir $100.
EmfPlusFlags.i
Drapeau
indiquant le type EMF+ du métafichier. C'est un élément
de l'énumération EmfType.
DpiX.f
Résolution
horizontale, en points par pouce (dots per inch), de l'image stockée
par le métafichier
DpiY.f
Résolution
verticale, en points par pouce (dots per inch), de l'image stockée
par le métafichier.
X.l
Coordonnée
la plus à droite de l'image stockée par le métafichier.
Y.l
Coordonnée
la plus haute de l'image stockée par le métafichier.
Width.l
Largeur
en pixels, de l'image stockée par le métafichier.
Height.l
Hauteur
en pixels, de l'image stockée par le métafichier.
StructureUnion
WmfHeader.METAHEADER
Obtient le header
WMF (Windows Metafile) du métafichier.
EmfHeader.ENHMETAHEADER3
Obtient
le header EMF (Enhanced Metafile) du métafichier.
EndStructureUnion
EmfPlusHeaderSize.l
Taille
en octets du header EMF+ du métafichier.
LogicalDpiX.l
Résolution
horizontale logique, en points par pouce (dots per inch), de l'image stockée
par le métafichier.
LogicalDpiY.l
Résolution
verticale logique, en points par pouce (dots per inch), de l'image stockée
par le métafichier.
EndStructure
Structure
PathData
;
Structure (class) déclarée dans le fichier GdiPlusTypes.h
; Contient les données graphiques composant un GraphicsPath.
Count.l
Nombre de point du GraphicsPath.
*Points.PointF
Ponteur sur le tableau de points du GraphicsPath.
*Types.Byte
Ponteur sur le tableau de points du GraphicsPath.
EndStructure
Structure
PointF
;
Structure déclarée dans le fichier GdiPlusTypes.h
;
Représente les coordonnées x et y en virgule flottante qui définissent un point
dans un plan à deux dimensions.
x.f
Coordonnée
X du point
y.f
Coordonnée
Y du point
EndStructure
Structure PropertyItem
;
Structure déclarée dans le fichier GdiPlusImaging.h
; Cette structure contient un seul élément
des méta-données d'une image.
id.i
Nombre entier qui identifie le type de metadata stocké. Les constantes
qui identifient les différents types de metadata (#PropertyTagEquipMake,
#PropertyTagEquipModel, etc.) sont des éléments
de l'énumération Image
property ID tags. Id est de type PROPID (32 bit non signé) et
est défini dans le fichier WTypes.h.
length.i
Taille
en octets du tableau de valeurs pointé par *value.
wtype.w
Nombre
entier qui identifie le type de données du tableau de valeurs pointé
par *value. Les constantes qui identifient les divers types de propriétés
d'images (#PropertyTagTypeByte, #PropertyTagTypeASCII,
etc.) sont des éléments de l'énumération Image
property types.
*value
Pointeur
sur un tableau de valeurs. Chaque valeur du tableau a le type de données
(data type) spécifié par l'élément wtype.w.
padding.w
;
Utilisé pour l'alignement des données sur 32 bit
EndStructure
Structure
PWMFRect16
;
Structure déclarée dans le fichier GdiPlusMetaHeader.h
; La structure PWMFRect16
définit un rectangle qui délimite un métafichier placeable. Le rectangle définit la taille et la position du
métafichier.
Left.w
Coordonnée
de gauche du rectangle qui délimite le métafichier.
Top.w
Coordonnée
supérieure du rectangle qui délimite le métafichier.
Right.w
Coordonnée
de droite du rectangle qui délimite le métafichier.
Bottom.w
Coordonnée
inférieure du rectangle qui délimite
le métafichier.
EndStructure
Structure
RectF
;
Structure déclarée dans le fichier GdiPlusTypes.h
; Stocke les coordonnées d'un rectangle (nombres
flottants).
x.f
Coordonnée
x de l'angle supérieur gauche du rectangle.
y.f
Coordonnée
y de l'angle supérieur gauche du rectangle.
width.f
Largeur
du rectangle.
height.f
Hauteur du rectangle.
EndStructure
Structure
SizeF
;
Structure déclarée dans le fichier GdiPlusTypes.h
; Stocke la largeur et la hauteur,
généralement d'un rectangle (nombres flottants).
width.f
Largeur
du rectangle.
height.f
Hauteur
du rectangle.
EndStructure
Structure
WmfPlaceableFileHeader
;
Structure déclarée dans le fichier GdiPlusMetaHeader.h
; Cette structure
permet de retrouver ou de placer les éléments du pré-header
des métafichiers WMF Placeable (taille de 22 octets,
voir
plus d'informations ici).
Key.i
Valeur
d'identification qui indique la présence d'un header d'un métafichier
placeable. Cette valeur est toujours $9AC6CDD7.
Hmf.w
Handle
du métafichier en mémoire. Lorsque il est écrit sur
disque, ce membre n'est pas utilisé et contiendra toujours la valeur
0.
BoundingBox.PWMFRect16
Rectangle de destination, mesuré en twips, pour l'affichage
du métafichier. La structure PWMFRect16 est décrite
plus haut sur cete page.
Tableau de conversion : L'abréviation TP désigne
le nombre de Twips par Pixel qui est la mesure couramment employée
pour indiquer la résolution video utilisée ainsi que celle
d'une imprimante: il s'agit donc d'une unité dépendante du
périphérique.
Inch.w
Nombre de twips par
pouce utilisés pour représenter l'image. Normalement, il
y a 1440 twips par pouce; cependant, ce nombre peut être changé
pour redimensionner une image.
- Une valeur de 720 spécifie que l'image a deux fois
sa taille normale.
- Une valeur de 360 spécifie que l'image a quatre fois
sa taille normale.
- Une valeur de 2880 spécifie que l'image a une taille
de moitié par rapport à sa taille normale.
Reserved.i
Paramètre réservé
(doit être à zéro).
Checksum.w
Checksum pour les
10 mots précédents du header. Cette valeur peut être
utilisée pour déterminer si le métafichier a été
corrompu.
EndStructure