如何在具有透明度和文本的图像上绘制矩形

25

这是我的第一个基于图形的项目,首先我需要能够在带透明度和文字的位图上绘制一个矩形。

我不确定从哪里开始。我已经做了一些研究,但似乎没有找到一篇文章可以让我向图片中添加半透明的矩形。

我将拥有一个需要操纵的图像流。

请问有人可以为我指明正确的方向吗?最好是带源代码的网站,因为我以前从未进行过GDI工作。

2个回答

40

您可以尝试类似下面的方法:

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

5
要开始操作图片,您需要从要修改的图像中创建一个图形上下文。请参见此处。
// Create image.
Image imageFile = Image.FromFile("SampImag.bmp");

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

一旦您获得了 Graphics 对象,就可以使用它的许多方法来绘制图像。在您的示例中,您将使用 DrawRectangle 方法并带有 ARGB 颜色来创建半透明矩形图像。
然后,您可以将图像显示到屏幕控件上或将其保存到磁盘上。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接