Partilhar via


Desenho com pincéis opacos e semitransparentes

Ao preencher uma forma, você deve passar o endereço de um objetoPincelpara um dos métodos de preenchimento da classeGraphics. O único parâmetro do SolidBrush construtor é 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.

Quando você preenche uma forma semitransparente, a cor da forma é misturada com as cores do plano de fundo. O componente alfa especifica como as cores da forma e do plano de fundo são misturadas; Valores alfa próximos a 0 colocam mais peso nas cores de plano de fundo e valores alfa próximos a 255 colocam mais peso na cor da forma.

O exemplo a seguir desenha uma imagem e, em seguida, preenche três elipses que se sobrepõem à imagem. A primeira elipse usa um componente alfa de 255, por isso é opaca. A segunda e terceira elipses usam um componente alfa de 128, por isso são semitransparentes; Você pode ver a imagem de fundo através das elipses. A chamada para Graphics::SetCompositingQuality faz com que a combinação para a terceira elipse seja feita em conjunto com a correção de 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 mostra uma imagem sobreposta por três elipses: uma opaca, uma ligeiramente transparente, uma muito transparente