Compartir a través de


Dibujo con pinceles opacos y semitransparentes

Al rellenar una forma, debe pasar la dirección de un objeto Brush a uno de los métodos de relleno de la clase Graphics . El único parámetro del constructor SolidBrush es un objeto Color . Para rellenar una forma opaca, establezca el componente alfa del color en 255. Para rellenar una forma semitransparente, establezca el componente alfa en cualquier valor entre 1 y 254.

Cuando se rellena una forma semitransparente, el color de la forma se mezcla con los colores del fondo. El componente alfa especifica cómo se mezclan la forma y los colores de fondo; los valores alfa cerca de 0 colocan más peso en los colores de fondo y los valores alfa cerca de 255 colocan más peso sobre el color de la forma.

En el ejemplo siguiente se dibuja una imagen y, a continuación, se rellenan tres puntos suspensivos que se superponen a la imagen. La primera elipse usa un componente alfa de 255, por lo que es opaca. La segunda y tercera elipses usan un componente alfa de 128, por lo que son semitransparentes; puede ver la imagen de fondo a través de las elipses. La llamada a Graphics::SetCompositingQuality hace que la mezcla de la tercera elipse se realice junto con la corrección 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);

En la ilustración siguiente se muestra la salida del código anterior.

ilustración que muestra una imagen superpuesta por tres puntos suspensivos: una opaca, una ligeramente transparente, una muy transparente