Как нарисовать прямоугольник на изображении с прозрачностью и текстом

Это мой первый графический проект, и для начала я должен уметь рисовать прямоугольник на растровое изображение с прозрачностью и текстом.

Я не уверен, с чего начать. Я сделал небольшое исследование, но не могу найти статью, которая позволит мне добавить полупрозрачный прямоугольник к изображению.

У меня будет поток изображений, с которым мне нужно управлять.

Может кто-нибудь, пожалуйста, назовите меня в правильном направлении?

Сайт с исходным кодом был бы замечательным, поскольку я никогда раньше не делал работу с GDI.

Ответ 1

Вы можете попробовать что-то вроде этого:

// Load the image (probably from your stream)
Image image = Image.FromFile( imagePath );

using (Graphics g = Graphics.FromImage(image))
{
   // Modify the image using g here... 
   // Create a brush with an alpha value and use the g.FillRectangle function
}

image.Save( imageNewPath );

Изменить: код для создания полупрозрачной серой кисти

Color customColor = Color.FromArgb(50, Color.Gray);
SolidBrush shadowBrush = new SolidBrush(customColor);
g.FillRectangles(shadowBrush, new RectangleF[]{rectFToFill});

Ответ 2

Для начала вам нужно создать графический контекст из изображения, которое вы хотите изменить. Смотрите здесь.

// Create image.
Image imageFile = Image.FromFile("SampImag.bmp");

// Create graphics object for alteration.
Graphics newGraphics = Graphics.FromImage(imageFile);

Как только у вас есть объект Graphics, вы можете использовать его множество методов для рисования на изображении. В вашем примере вы бы использовали метод DrawRectangle с цветом ARGB, чтобы создать полупрозрачный прямоугольник на вашем изображении.

Затем вы можете отобразить изображение на экране или сохранить его на диск.