GdipSetPathGradientPresetBlend()



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

[in] Pointeur sur un objet PathGradientBrush.

blend.i()

[in] Tableau de couleurs au format ARGB.

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 que le point est sur le contour (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 un mélange des couleurs du dégradé avec des couleurs qui ne sont pas celles obligatoirement celles de base.
Il est possible de redéfinir la couleur du contour et la couleur centrale qui sont respectivement le premier et le dernier élément du tableau pointé par blend.l

Le fonctionnement est le suivant.

Exemple avec une brush en forme de losange, couleur centrale verte et contour blanc.
Les 2 tableaux ont chacun quatre éléments.
Dans l'exemple, la couche alpha vaut 255 pour chaque couleur.

Le dégradé sans mélange donne ceci :

Valeurs pour l'application de la fonction :

blend(0) =ARGB(#white)   ; du blanc
blend
(1) = ARGB(#Yellow) ; du jaune
blend
(2) =ARGB(#Black)     ; du noir
blend
(3) =ARGB( #red)         ; du rouge

Au contour il y a la couleur blanche (élément blend(0) en correspondance avec positions(0)).

A 45% de distance relative (distance entre le contour et le point central) il y a la couleur jaune (élément blend(1) en correspondance avec positions(1).

A 75% de distance relative (distance entre le contour et le point central) il y a la couleur noire (élément blend(2) en correspondance avec positions(2).

Au point central (100% de distance relative) il y a la couleur rouge (élément blend(3) en correspondance avec positions(3).

positions(0) = 0.00  ; toujours cette valeur, couleur correspondante blend(0)
positions(1) = 0.45    ; à 45% du début du dégradé on a la couleur correspondante blend
(1)
positions(2) = 0.75   ; à 75% du début du dégradé on a la couleur correspondante blend
(2)
positions(3) = 1.00    ; toujours cette valeur, couleur correspondante blend
(3)
Le dégradé modifié avec la fonction GdipSetPathGradientPresetBlend() donne ceci :

On a un premier dégradé du blanc au jaune.
On a un second dégradé du jaune au noir.
On a un dernier dégradé du noir au rouge.
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