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

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

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

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

может кто-то пожалуйста, мне точку в правильном направлении за это?

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

2 ответов


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

// 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 );

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

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

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

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

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

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

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