GdipSetCompositingMode()



Syntaxe
Resultat.i = GdipSetCompositingMode(*graphics, compositingMode.l)
Paramètres
*graphics

[in] Pointeur sur un objet Graphics existant.

compositingMode.l

[in] Elément de l'énumération CompositingMode qui spécifie le mode de composition du graphique.

Description

Cette fonction permet d'appliquer le mode de composition au graphique, c'est-à-dire la manière dont les couleurs sources sont combinées avec les couleurs d'arrière-plan. Le mode de composition détermine si les pixels source sont remplacés par les pixels d'arrière-plan ou y sont associés.

Supposons que vous créez une SolidBrush basée sur une couleur qui a une couche alpha de 192, ce qui est environ 75% de 255 (les valeurs de la couche alpha varient de 0 - totalement transparent - à 255 - totalement opaque -). Si votre graphique a son mode de composition à #CompositingModeSourceOver, alors les secteurs remplis par la SolidBrush seront un mélange de 75% de la couleur de la SolidBrush et de 25% de la couleur de fond. Si votre graphique a son mode composition à #CompositingModeSourceCopy, alors la couleur de fond n'est pas mélangée avec la couleur de la SolidBrush. Cependant, la couleur affichée par la SolidBrush a une intensité qui est de 75% pour cent de ce qu'elle serait si la couche alpha étaient à 255. Vous ne pouvez pas utiliser #CompositingModeSourceCopy avec #TextRenderingHintClearTypeGridFit.

Exemple :
Dessine une fenêtre.
Le graphique principal (qui correspond au paramètre *graphics de la fonction) est créé à partir du Hdc de la fenêtre principale
Création d'une SolidBrush rouge avec couche alpha à 128
Application au graphique du mode de composition #CompositingModeSourceOver
On dessine un rectangle rempli avec la brush à x = 30, y = 0 largeur et hauteur 100 pixels
Application au graphique du mode de composition #CompositingModeSourceCopy
On dessine un second rectangle rempli avec la brush à x = 205, y = 0 largeur et hauteur 100 pixels
Modification de la couche alpha de la brush à 255, soit couleur totalement opaque.
On dessine un troisième rectangle rempli avec la brush à x = 300, y = 0 largeur et hauteur 100 pixels

Le résultat est l'image ci-dessous.

Le rectangle le plus à gauche est dessiné avec une transparence de 50% (paramètre de composition de la fonction à #CompositingModeSourceOver)
Le second rectangle (au centre) n'est pas dessiné avec transparence malgré la couche alpha à 128 de la brush (50% de transparence) car le paramètre de composition de la fonction vaut #CompositingModeSourceCopy, mais c'est son intensité qui vaut 50% de ce qu'elle serait avec la couche alpha à 255.
Le troisième rectangle (le plus à droite) est dessiné avec la brush ayant une couche alpha à 255 et le paramètre de composition valant #CompositingModeSourceCopy.

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