불투명 및 반투명 브러시를 사용하여 그리기
셰이프를 채울 때 Brush 개체의 주소를 Graphics 클래스의 채우기 메서드 중 하나에 전달해야 합니다. SolidBrush 생성자의 한 매개 변수는 Color 개체입니다. 불투명 셰이프를 채우려면 색의 알파 구성 요소를 255로 설정합니다. 반투명 셰이프를 채우려면 알파 구성 요소를 1에서 254 사이의 임의 값으로 설정합니다.
반투명 셰이프를 채우면 셰이프 색이 배경색과 혼합됩니다. 알파 구성 요소는 도형과 배경색이 혼합되는 방식을 지정합니다. 0에 가까운 알파 값은 배경색에 더 많은 가중치를 적용하고, 255에 가까운 알파 값은 도형 색에 더 많은 무게를 줍니다.
다음 예제에서는 이미지를 그린 다음 이미지와 겹치는 3개의 줄임표를 채웁니다. 첫 번째 타원은 알파 구성 요소 255를 사용하므로 불투명합니다. 두 번째 및 세 번째 타원은 알파 구성 요소 128을 사용하므로 반투명합니다. 타원을 통과하는 배경 이미지를 볼 수 있습니다. Graphics::SetCompositingQuality를 호출하면 세 번째 타원에 대한 혼합이 감마 수정과 함께 수행됩니다.
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);
다음 그림에서는 이전 코드의 출력을 보여 줍니다.