Partager via


Dessin avec des pinceaux opaques et semi-transparents

Lorsque vous remplissez une forme, vous devez passer l’adresse d’un objet Brush à l’une des méthodes de remplissage de la classe Graphics . Le seul paramètre du constructeur SolidBrush est un objet Color . Pour remplir une forme opaque, affectez au composant alpha de la couleur la valeur 255. Pour remplir une forme translucide, affectez au composant alpha n'importe quelle valeur comprise entre 1 et 254.

Quand vous remplissez une forme translucide, la couleur de la forme est fusionnée avec les couleurs d'arrière-plan. Le composant alpha spécifie comment les couleurs de forme et d’arrière-plan sont mélangées ; Les valeurs alpha proches de 0 placent plus de poids sur les couleurs d’arrière-plan, et les valeurs alpha proches de 255 pèsent davantage sur la couleur de la forme.

L’exemple suivant dessine une image, puis remplit trois points de suspension qui chevauchent l’image. La première ellipse utilise un composant alpha de 255. Elle est donc opaque. Les deuxième et troisième ellipses utilisent un composant alpha de 128 et sont donc translucides. Vous pouvez voir l'image d'arrière-plan à travers les ellipses. L’appel à Graphics::SetCompositingQuality entraîne la fusion de la troisième ellipse en conjonction avec la correction gamma.

Image image(L"Texture1.jpg");
graphics.DrawImage(&image, 50, 50, image.GetWidth(), image.GetHeight());
SolidBrush opaqueBrush(Color(255, 0, 0, 255));
SolidBrush semiTransBrush(Color(128, 0, 0, 255));
graphics.FillEllipse(&opaqueBrush, 35, 45, 45, 30);
graphics.FillEllipse(&semiTransBrush, 86, 45, 45, 30);
graphics.SetCompositingQuality(CompositingQualityGammaCorrected);
graphics.FillEllipse(&semiTransBrush, 40, 90, 86, 30);

L’illustration suivante montre la sortie du code précédent.

illustration montrant une image superposée par trois ellipses : une opaque, une légèrement transparente, une très transparente