Рисование непрозрачных и частично прозрачных линий
При рисовании линии необходимо передать адрес объекта Pen методу DrawLine класса Graphics . Одним из параметров конструктора пера является объект Color . Чтобы нарисовать непрозрачную линию, установите альфа-компонент цвета равным 255. Чтобы нарисовать полупрозрачную линию, установите значение альфа-компонента в диапазоне от 1 до 254.
При рисовании полупрозрачной линии на некотором фоне цвет линии смешивается с цветами фона. Альфа-компонент указывает, как смешиваются цвета линии и фона; Альфа-значения, близкие к 0, больше весят цвета фона, а альфа-значения около 255 — к цвету линии.
В следующем примере рисуется изображение, а затем рисуется три линии, которые используют его в качестве фона. Цвет первой линии имеет альфа-компонент, равный 255, поэтому она является непрозрачной. Для второй и третьей линий используется альфа-компонент, равный 128, поэтому они являются полупрозрачными и сквозь них можно видеть фоновое изображение. Вызов Graphics::SetCompositingQuality вызывает смешение для третьей строки в сочетании с гамма-коррекцией.
Image image(L"Texture1.jpg");
graphics.DrawImage(&image, 10, 5, image.GetWidth(), image.GetHeight());
Pen opaquePen(Color(255, 0, 0, 255), 15);
Pen semiTransPen(Color(128, 0, 0, 255), 15);
graphics.DrawLine(&opaquePen, 0, 20, 100, 20);
graphics.DrawLine(&semiTransPen, 0, 40, 100, 40);
graphics.SetCompositingQuality(CompositingQualityGammaCorrected);
graphics.DrawLine(&semiTransPen, 0, 60, 100, 60);
На следующем рисунке показаны выходные данные предыдущего кода.