Compartilhar via


Desenho com pincéis opacos e semitransparentes

Ao preencher uma forma, você deve passar o endereço de um objeto Brush para um dos métodos de preenchimento da classe Graphics . O único parâmetro do construtor SolidBrush é um objeto Color . Para preencher uma forma opaca, defina o componente alfa da cor como 255. Para preencher uma forma semitransparente, defina o componente alfa para qualquer valor de 1 a 254.

Ao preencher uma forma semitransparente, a cor da forma é combinada com as cores da tela de fundo. O componente alfa especifica como as cores da forma e da tela de fundo são misturadas; valores alfa próximos a 0 colocam mais peso nas cores da tela de fundo, e os valores alfa próximos a 255 colocam mais peso sobre a cor da forma.

O exemplo a seguir desenha uma imagem e preenche três reticências que se sobrepõem à imagem. A primeira elipse usa um componente alfa de 255, portanto, é opaca. As segunda e terceira elipses usam um componente alfa de 128, para que sejam semitransparentes; É possível ver a imagem da tela de fundo pelas elipses. A chamada para Graphics::SetCompositingQuality faz com que a mesclagem da terceira elipse seja feita em conjunto com a correção gama.

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);

A ilustração a seguir mostra a saída do código anterior.

ilustração mostrando uma imagem sobreposta por três reticências: uma opaca, uma ligeiramente transparente, uma muito transparente