Disegno con pennelli opachi e semitrasparenti
Quando si riempie una forma, è necessario passare l'indirizzo di un oggetto Brush a uno dei metodi di riempimento della classe Graphics . Uno dei parametri del costruttore SolidBrush è un oggetto Color. Per riempire una forma opaca, impostare il componente alfa del colore su 255. Per riempire una forma semitrasparente, impostare il componente alfa su qualsiasi valore compreso tra 1 e 254.
Quando si riempie una forma semitrasparente, il colore della forma viene mescolato con i colori dello sfondo. Il componente alfa specifica il modo in cui le forme e i colori di 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 forma.
L'esempio seguente disegna un'immagine e poi riempie tre ellissi che si sovrappongono all'immagine. Il primo ellisse usa un componente alfa pari a 255, quindi è opaco. I secondi e i terzi puntini di sospensione usano un componente alfa pari a 128, quindi sono semitrasparenti; è possibile visualizzare l'immagine di sfondo attraverso i puntini di sospensione. La chiamata a Graphics::SetCompositingQuality fa sì che la fusione per il terzo ellisse venga eseguita insieme alla correzione gamma.
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);
La figura seguente mostra l'output del codice precedente.
molto trasparente