PureBasic & GDI+ 1.0
PathGradientBrush


Les brush de type PathGradientBrush permettent de créer des dégradés à partir de une ou plusieurs couleurs pour remplir des formes fermées diverses en suivant un chemin (Path). Ce chemin délimite les bordures de l'objet à remplir. Une brush de type PathGradientBrush est définie par des lignes de bordure (Path), une ou des couleurs de bordure (chaque point définissant le chemin peut avoir sa propre couleur), un point central et une couleur du point central.

Le dégradé part du point central du tracé à son bord extérieur. Les facteurs de mélange, les positions et le style affectent les couleurs de début et de fin du dégradé ainsi que la vitesse à laquelle la couleur change. Ces brush n'obéissent pas à la propriété SmoothingMode de l'objet Graphics utilisé pour faire le dessin. Les zones remplies à l'aide d'un objet PathGradientBrush sont rendues de la même façon (avec un alias), indépendamment du mode de lissage.

GDI+ défini le chemin comme une séquence de lignes et courbes maintenues par un objet GraphicsPath. Pour plus d'informations sur les fonctions des chemins, voir les rubriques GraphicsPath1 et GraphicsPath2.

Par défaut, une brush PathGradientBrush ne se prolonge pas en dehors de sa bordure. Si vous utilisez la brush pour remplir une forme qui s'étend au delà de la bordure, le secteur de l'écran en dehors du chemin ne sera pas rempli.

La taille de la brush peut être égale ou différente de la zone ou elle sera dessinée. Si la brush est plus petite que la zone dessinée, il y aura répétition du motif jusqu'à ce que la zone soit remplie. Dans ce cas, le paramètre wrapMode.l des fonctions permet de spécifier le mode de remplissage des formes. Si le dégradé est plus petit que la zone à remplir, il sera disposé en mosaïque selon un des formats de l'énumération Wrapmode.

Lorsqu'une brush est créée, il est possible d'appliquer des modifications (nombreuses fonctions).

- Les méthodes de transformation géométrique (rotation --> rotate).
- Les méthodes de mise à l'échelle (scale).
- Les méthodes de translation (translate).
- Les méthodes de mélange des couleurs (blend).
- Correction gamma.

Certaines modifications utilisent des matrices de transformation dont un paramètre permet de positionner l'ordre des modifications tel que décrit par les valeurs MatrixOrder.

Les brush (donc les PathGradientBrush) sont des objets qui sont utilisés pour remplir l'intérieur d'une forme fermée. Des fonctions telles que GdipFillEllipseI()GdipFillRectangleI() etc. doivent être utilisées pour afficher la brush sur un objet graphic.

Les couleurs passées en paramètre aux brush doivent avoir été préalablement modifiées par la procédure ARGB (voir le fichier gdiplus.pbi)

Lorsque l'on retrouve une couleur avec une des commandes existantes, il faut la modifier à l'aide de la fonction ARGBEX() qui se trouve dans le fichier gdiplus.pbi

Valeur de retour:

D'une manière générale, les fonctions retournent les valeurs suivantes :

Si la fonction réussit, elle retourne #Ok qui est une constante de l'énumération status.

Si la fonction échoue, elle retourne une des autres valeurs de l'énumération status.
Liste des commandes
GdipCreatePathGradient
GdipCreatePathGradientFromPath
GdipCreatePathGradientI
GdipGetPathGradientBlend
GdipGetPathGradientBlendCount
GdipGetPathGradientCenterColor
GdipGetPathGradientCenterPoint
GdipGetPathGradientCenterPointI
GdipGetPathGradientFocusScales
GdipGetPathGradientGammaCorrection
GdipGetPathGradientPath
GdipGetPathGradientPointCount
GdipGetPathGradientPresetBlend
GdipGetPathGradientPresetBlendCount
GdipGetPathGradientRect
GdipGetPathGradientRectI
GdipGetPathGradientSurroundColorCount
GdipGetPathGradientSurroundColorsWithCount
GdipGetPathGradientTransform
GdipGetPathGradientWrapMode
GdipMultiplyPathGradientTransform
GdipResetPathGradientTransform
GdipRotatePathGradientTransform
GdipScalePathGradientTransform
GdipSetPathGradientBlend
GdipSetPathGradientCenterColor
GdipSetPathGradientCenterPoint
GdipSetPathGradientCenterPointI
GdipSetPathGradientFocusScales
GdipSetPathGradientGammaCorrection
GdipSetPathGradientLinearBlend
GdipSetPathGradientPath
GdipSetPathGradientPresetBlend
GdipSetPathGradientSigmaBlend
GdipSetPathGradientSurroundColorsWithCount
GdipSetPathGradientTransform
GdipSetPathGradientWrapMode
GdipTranslatePathGradientTransform