Sdílet prostřednictvím


Kreslení s neprůhlednými a poloprůhlednými štětci

Při vyplňování obrazce musíte předat adresu objektu Brush do jedné z metod pro vyplňování třídy Graphics. Jedním parametrem konstruktoru SolidBrush je objekt Color. Pokud chcete vyplnit neprůsvitný obrazec, nastavte alfa komponentu barvy na 255. Pokud chcete vyplnit poloprůhledný obrazec, nastavte alfa komponentu na libovolnou hodnotu od 1 do 254.

Když vyplníte poloprůhledný obrazec, barva obrazce se spojí s barvami pozadí. Alfa komponenta určuje, jak jsou barvy obrazce a pozadí smíšené; alfa hodnoty poblíž 0 dávají větší důraz na barvy pozadí a alfa hodnoty poblíž 255 dávají větší důraz na barvu obrazce.

Následující příklad nakreslí obrázek a pak vyplní tři elipsy, které překrývají obrázek. První elipsa používá alfa komponentu 255, takže je neprůhledná. Druhá a třetí elipsa používají alfa komponentu 128, takže jsou poloprůhledné; pozadí můžete vidět skrz elipsy. Volání Graphics::SetCompositingQuality způsobí, že kombinace třetí elipsy bude provedena ve spojení s gama korekcí.

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

Následující obrázek znázorňuje výstup předchozího kódu.

ilustrace znázorňující obrázek překrytý třemi elipsami: jedna neprůhledná, jedna mírně průhledná, jedna velmi průhledná