Compartilhar via


Desenhar linhas opacas e semitransparentes

Ao desenhar uma linha, você 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.

Ao desenhar uma linha semitransparente em uma tela de fundo, a cor da linha é combinada com as cores da tela de fundo. O componente alfa especifica como as cores da linha 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 linha.

O exemplo a seguir desenha uma imagem e desenha três linhas que usam a imagem como tela de fundo. A primeira linha usa um componente alfa de 255, portanto, é opaca. As segunda e terceira linhas usam um componente alfa de 128, para que sejam semitransparentes. É possível ver a imagem da tela de fundo pelas linhas. A chamada para Graphics::SetCompositingQuality faz com que a mesclagem da terceira linha seja feita em conjunto com a correção 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 mostrando uma imagem sobreposta por três linhas largas: uma opaca, uma ligeiramente transparente e outra muito transparente