GdipSetPathGradientBlend()



Syntaxe
Resultat.i = GdipSetPathGradientBlend(*brush, blend.f(), positions.f(), count.l)
Paramètres
*brush

[in] Pointeur sur un objet PathGradientBrush.

blend.f()

[in] Tableau de nombres flottants indiquant les facteurs de mélange.
Chaque nombre du tableau indique un pourcentage de la couleur centrale et doit être compris entre 0.0 et 1.0

positions.f()

[in] Tableau de nombres flottants indiquant les positions relatives pour le mélange des couleurs.
Chaque nombre du tableau indique un pourcentage de la distance entre le contour et le point central du dégradé et doit être compris entre 0.0 et 1.0.
0.0 indique le début (0%) du dégradé et des 1.0 en indique le point central (100%).
Il doit y avoir au moins deux positions indiquées : la première position, qui vaut toujours 0.0 et la dernière qui vaut toujours 1.0. Si d'autres valeurs de début et de fin sont appliquées, le comportement est indéfini.
Une valeur de 0.2 indique une position à 20% par rapport au contour extérieur du dégradé.

count.l

[in] Nombre d'éléments des deux tableaux ci-dessus. Le nombre d'éléments des tableaux de flottants (blend et positions) doit être strictement identique.

Description
Cette fonction permet une atténuation personnalisée pour le dégradé d'une brush PathGradientBrush avec le fonctionnement suivant.

Exemple avec les 2 tableaux ayant chacun quatre éléments.

La couleur relative est toujours par rapport à la couleur centrale de la brush.
Dans l'exemple, la couleur centrale est définie par la fonction GdipSetPathGradientCenterColor().

Couleur centrale de la brush : rouge  avec opacité complète (couche alpha = 255).
Couleur du bord de la brush : blanche (couleur par défaut).

Le dégradé sans application du mélange de couleurs donne ceci pour une brush en forme de losange, wrapmode à #WrapModeTile :

La distance totale est la distance qui part du point central pour arriver sur un point du contour.

- A 0% de distance totale, à partir de chaque bord de la brush, --> la couleur blanche est à 100% (pas de mélange)
- A 20% de distance totale, à partir de chaque bord de la brush, --> la couleur rouge (couleur d'arrivée) est à 40% en mélange (transparence)
- A 60% de distance totale, à partir de chaque bord de la brush, --> la couleur rouge (couleur d'arrivée) est à 50% en mélange (transparence)
- Au point central (100% de distance totale), la couleur rouge (couleur d'arrivée) est à 100% (pas mélange avec le blanc)


blend(0) = 0.0   ; 0% de la couleur rouge (ici du blanc)
blend(1) = 0.4    ; 40% de la couleur rouge
blend(2) = 0.5   ; 100% de la couleur rouge
blend(3) = 1.0   ; 100% de la couleur rouge

positions(0) = 0.0   ; sur le pourtour
positions
(1) = 0.2    ; correspond à 20% de la distance du bord au point central
positions
(2) = 0.6   ; correspond à 60% de la distance du bord au point central
positions
(3) = 1.0   ; le point central

Le dégradé modifié avec la fonction GdipSetPathGradientBlend() donne ceci:

Premier dégradé entre le contour et 20% de la distance au point central qui va du blanc pur au rouge à 40% en mélange.
Second dégradé entre 20% de la distance au point central et 60% de la distance au point central qui va du rouge à 40% en mélange jusqu'au rouge à 50% en mélange.
Dernier dégradé entre 60% de la distance au point central jusqu'au point central qui va du rouge à 50% en mélange jusqu'au rouge pur (pas de mélange).

Résultat de la fonction
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.
PB - OS
PureBasic v4.30 bêta 4 (Windows - x86)
Testé avec Windows Vista édition familiale Premium