2013-02-26 2 views
2

Возможно ли рисовать графику в C# с прозрачностью, например. 50%?Добавление прозрачности в Graphics.Draw

Мой реальный код выглядит следующим образом:

Image myBitmap = new Bitmap((int)sizeX,(int)sizeY); 
Graphics myGraphics = Graphics.FromImage(myBitmap); 

Pen outerPenColor = new Pen(Color.Black, 1); 

myGraphics.DrawRectangle(outerPenColor, 1.0, 2.0, 3.0, 4.0); 

это все работает отлично, но я хочу, чтобы иметь прозрачный черный, возможно ли это?

ответ

2

Graphics контекста и Bitmap объектов поддерживают прозрачность по умолчанию. Единственное, что вам нужно сделать, это рисовать цвета, которые являются не opaque. Существует перегрузка для статического метода Color.FromArgb, который принимает значение alpha и цвет и возвращает Color, который имеет указанную прозрачность. Значение альфа - это значение от 0 (полностью прозрачное) до 255 (полностью непрозрачное). Например:

// 75% opaque (25% transparent) Red 
var semiRed = Color.FromArgb(191, Color.Red); 
// 50% opaque (50% transparent) Black 
var semiBlack = Color.FromArgb(128, Color.Black); 

Теперь вы можете использовать это полупрозрачный черный цвет для вашего Pen и рисовать полупрозрачные строки:

Pen outerPenColor = new Pen(semiBlack, 1); 
myGraphics.DrawRectangle(outerPenColor, 1.0, 2.0, 3.0, 4.0); 
0

Вместо использования Color.Black используйте Color.FromArgb, который позволит вам указать значение альфа.

0

Если я не ошибается (непроверенный), он должен работать с использованием другой Альфы на пере, например .:

Pen outerPenColor = new Pen(Color.FromArgb(128,0,0,0), 1); 
Смежные вопросы