Disegno di linee opache e semitrasparenti
Quando si disegna una linea, è necessario passare l'indirizzo di un oggetto Pen al metodo DrawLine della classe Graphics. Uno dei parametri del costruttore Penna è un oggetto Colore . Per disegnare una linea opaca, impostare il componente alfa del colore su 255. Per disegnare una linea semitrasparente, impostare il componente alfa su qualsiasi valore compreso tra 1 e 254.
Quando si disegna una linea semitrasparente su uno sfondo, il colore della linea viene miscelato con i colori dello sfondo. Il componente alfa specifica il modo in cui i colori della linea e dello sfondo sono misti; i valori alfa vicini 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 linee che usano l'immagine come sfondo. La prima riga usa un componente alfa di 255, quindi è opaco. Le seconde e le terze righe usano un componente alfa pari a 128, quindi sono semitrasparenti; è possibile visualizzare l'immagine di sfondo attraverso le linee. La chiamata a Graphics::SetCompositingQuality fa sì che la fusione della terza riga venga eseguita 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.
molto trasparente