Condividi tramite


Disegno con pennelli opachi e semitraparenti

Quando si riempie una forma, è necessario passare l'indirizzo di un oggetto Brush a uno dei metodi di riempimento della classe Graphics . Il parametro 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 un valore qualsiasi compreso tra 1 e 254.

Quando si riempie una forma semitrasparente, il colore della forma viene sfumato con i colori dello sfondo. Il componente alfa specifica il modo in cui i colori della forma e dello 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 forma.

L'esempio seguente disegna un'immagine e quindi riempie tre puntini di sospensione che si sovrappongono all'immagine. Per la prima ellisse si usa un componente alfa con un valore pari a 255, quindi l'ellisse risulta opaca. Per la seconda e la terza ellisse si usa un componente alfa con un valore pari a 128, quindi le ellissi risultano semitrasparenti. L'immagine di sfondo è visibile attraverso le ellissi. La chiamata a Graphics::SetCompositingQuality causa la fusione per la terza ellisse da eseguire 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.

figura che mostra un'immagine sovralizzata da tre puntini di sospensione: un opaco, un leggero trasparente, uno molto trasparente