Partilhar via


Desenho de linhas opacas e semitransparentes

Ao desenhar uma linha, deve passar o endereço de um objeto Pen para o método DrawLine da classe Graphics. Um dos parâmetros do construtor Pen é um objeto Color. Para desenhar uma linha opaca, defina o componente alfa da cor como 255. Para desenhar uma linha semitransparente, defina o componente alfa para qualquer valor de 1 a 254.

Quando você desenha uma linha semitransparente sobre um plano de fundo, a cor da linha é misturada com as cores do plano de fundo. O componente alfa especifica como as cores de linha e 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 linha.

O exemplo a seguir desenha uma imagem e, em seguida, desenha três linhas que usam a imagem como plano de fundo. A primeira linha usa um componente alfa de 255, por isso é opaca. A segunda e terceira linhas usam um componente alfa de 128, por isso são semitransparentes; Você pode ver a imagem de fundo através das linhas. A chamada para Graphics::SetCompositingQuality provoca que a fusão para a terceira linha seja feita em conjunto com a correção de gama.

Image image(L"Texture1.jpg");
graphics.DrawImage(&image, 10, 5, image.GetWidth(), image.GetHeight());
Pen opaquePen(Color(255, 0, 0, 255), 15);
Pen semiTransPen(Color(128, 0, 0, 255), 15);
graphics.DrawLine(&opaquePen, 0, 20, 100, 20);
graphics.DrawLine(&semiTransPen, 0, 40, 100, 40);
graphics.SetCompositingQuality(CompositingQualityGammaCorrected);
graphics.DrawLine(&semiTransPen, 0, 60, 100, 60);

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

ilustração mostra uma imagem sobreposta por três linhas largas: uma opaca, uma ligeiramente transparente e uma muito transparente