GdipSetLineLinearBlend()



Syntaxe
Resultat.i = GdipSetLineLinearBlend(*brush, focus.f, scale.f)
Paramètres
*brush

[in] Pointeur sur un objet LinearGradientBrush.

focus.f

[in] Emplacement où le dégradé est uniquement composé de la couleur de fin. Ce nombre est un pourcentage de la distance entre les lignes de début et de fin et doit être compris entre 0.0 et 1.0 (0.0 indique 0% et 1.0 100%).
A partir de ce point, le dégradé varie dans le sens décroissant vers la couleur de début de manière linéaire.
Si focus spécifie un emplacement qui n'est ni le début (0%) ni la fin (100%) du dégradé, la variation est décroissante linéaire à partir de la couleur de fin (à la position du focus) vers une couleur unique aux deux extrémités (couleur de début).

scale.f

[in] Pourcentage de la couleur de fin du dégradé utilisé en mélange, à la position du focus, avec la couleur de début du dégradé. Ce nombre doit être compris entre 0.0 et 1.0 (0.0 indique 0% et 1.0 100%).
Scale spécifie la rapidité avec laquelle les couleurs varient dans le sens décroissant, de la couleur de début vers focus (couleur de fin).

Description
Cette fonction permet de créer un dégradé linéaire avec une couleur centrale et une variation décroissante linéaire vers une couleur unique aux deux extrémités. Elle est aussi nommée transformation BlendTriangularShape.

Voici un exemple de fonctionnement :

Un dégradé linéaire classique commence par la couleur de début et se termine par la couleur de fin. La couleur de fin se situe à 100% de distance par rapport à la couleur de début. Le paramètre focus permet de déplacer la position de cette couleur de fin entre 0% et 100%de la position de départ.

0% signifie que la couleur de fin a pris la place de la couleur de départ et la couleur de départ a pris la place de la couleur d'arrivée.

50% signifie que la couleur de fin est au milieu du dégradé. La couleur de départ se trouve au début du dégradé ainsi qu'à la fin du dégradé. Ce dégradé a deux zones distinctes (voir l'image correspondante).

100% signifie que la couleur de fin est à la fin du dégradé et la couleur de départ est au début du dégradé (comme une brush classique).

Prenons la couleur de départ blanche et celle d'arrivée rouge et un dégradé linéaire horizontal comme brush de base. Pour l'exemple, le paramètre scale est à 100% (opacité complète de la couleur d'arrivée).

Le dégradé avec focus à 0% donne ceci (200 pixels de large) :

Le dégradé avec focus à 50% donne ceci (200 pixels de large) :

Le dégradé avec focus à 100% donne ceci (200 pixels de large) :

Le paramètre scale permet de faire varier l'intensité de la couleur d'arrivée. Si on diminue cette intensité, la couleur rouge va se retrouver mélangée avec la couleur de départ donnant une impression de diminution d'intensité de la couleur d'arrivée.

0% signifie que la couleur de fin a disparue et est remplacée par la couleur d'arrivée (plus de couleur d'arrivée dans le dégradé) quelle que soit la valeur du paramètre focus.

50% signifie que la couleur du focus (couleur de fin) est semi-transparente avec la couleur de départ.

100% signifie que la couleur du focus (couleur de fin) est complètement opaque, pas de transparence avec la couleur de départ.

Prenons le paramètre focus à 50% pour les 3 prochaines images

Le dégradé avec scale à 0% donne ceci (200 pixels de large) :

Le dégradé avec scale à 50% donne ceci (200 pixels de large) :

Le dégradé avec scale à 100% donne ceci (200 pixels de large) :

Cette fonction s'applique à toutes les brush LinearGradientBrush.

Le troisième fichier d'exemple permet de comparer le rendu des fonctions GdipSetLineLinearBlend() et GdipSetLineSigmaBlend().

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