Рисование с помощью непрозрачных и полупрозрачных кистей
При заполнении фигуры необходимо передать адрес объекта Brush одному из методов заливки класса Graphics . Одним из параметров конструктора SolidBrush является объект Color . Чтобы залить непрозрачную фигуру, следует установить значение альфа-компонента цвета в 255. Чтобы залить полупрозрачную фигуру, установите значение альфа-компонента в интервале от 1 до 254.
При заполнении полупрозрачной фигуры цвет фигуры смешивается с цветами фона. Альфа-компонент указывает, как смешиваются цвета фигуры и фона; Значения альфа около 0 имеют больший вес на цвета фона, а значения альфа около 255 больше весят цвет фигуры.
В следующем примере рисуется изображение, а затем заполняется три многоточия, перекрывающие изображение. Для первого эллипса используется значение альфа-компонента, равное 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);
На следующем рисунке показаны выходные данные предыдущего кода.