Condividi tramite


Disegno di linee opache e semitrasparenti

Quando si disegna una riga, è necessario passare l'indirizzo di un oggetto Pen al metodo DrawLine della classe Graphics . Uno dei parametri del costruttore Pen è un oggetto Color . Per disegnare una linea opaca, impostare il componente alfa del colore su 255. Per disegnare una linea semitrasparente, impostare il componente alfa su un valore qualsiasi compreso tra 1 e 254.

Quando si disegna una linea semitrasparente su uno sfondo, il colore della linea viene sfumato con i colori dello sfondo. Il componente alfa specifica il modo in cui i colori di linea e sfondo sono misti; i valori alfa vicino a 0 posizionano più peso sui colori di sfondo e i valori alfa vicino a 255 posizionano più peso sul colore della linea.

L'esempio seguente disegna un'immagine e quindi disegna tre righe che usano l'immagine come sfondo. Per la prima linea si usa un componente alfa con un valore pari a 255, quindi la linea risulta opaca. Per la seconda e la terza linea si usa un componente alfa con un valore pari a 128, quindi le linee risultano semitrasparenti. L'immagine di sfondo è visibile attraverso le linee. La chiamata a Graphics::SetCompositingQuality causa la fusione per la terza riga da eseguire insieme alla correzione gamma.

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

La figura seguente mostra l'output del codice precedente.

figura che mostra un'immagine sovrapposta a tre linee wide: una opaca, una leggermente trasparente e una molto trasparente