Как нарисовать прямоугольник на изображении с прозрачностью и текстом
Это мой первый графический проект, и для начала я должен уметь рисовать прямоугольник на растровое изображение с прозрачностью и текстом.
Я не уверен, с чего начать. Я сделал небольшое исследование, но не могу найти статью, которая позволит мне добавить полупрозрачный прямоугольник к изображению.
У меня будет поток изображений, с которым мне нужно управлять.
Может кто-нибудь, пожалуйста, назовите меня в правильном направлении?
Сайт с исходным кодом был бы замечательным, поскольку я никогда раньше не делал работу с 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, чтобы создать полупрозрачный прямоугольник на вашем изображении.
Затем вы можете отобразить изображение на экране или сохранить его на диск.