c# pictureBox图片上显示红色ROI
时间: 2023-06-27 17:02:40 浏览: 211
要在 C# 的 PictureBox 上显示红色的 ROI(感兴趣区域),可以使用 Graphics 对象的 DrawRectangle 方法来绘制一个矩形,并指定 Pen 对象的颜色为红色。以下是一个简单的示例代码:
```csharp
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
// 绘制一个红色的矩形
Pen pen = new Pen(Color.Red, 2);
Rectangle rect = new Rectangle(50, 50, 100, 100);
e.Graphics.DrawRectangle(pen, rect);
}
```
在此示例中,我们在 PictureBox 的 Paint 事件中绘制了一个红色的矩形,该事件会在 PictureBox 绘制时自动触发。您可以根据需要调整矩形的位置和大小。
相关问题
c#通button pictureBox图片上显示红色ROI
您可以使用C#的System.Drawing命名空间中的Graphics类来在PictureBox上绘制红色ROI以下是一个简单的示例代码:
```csharp
private void DrawROI()
{
Bitmap bmp = new Bitmap(pictureBox1.Image);
Graphics g = Graphics.FromImage(bmp);
// 绘制红色矩形
Pen pen = new Pen(Brushes.Red, 2);
Rectangle rect = new Rectangle(50, 50, 100, 100);
g.DrawRectangle(pen, rect);
pictureBox1.Image = bmp;
}
```
在上述代码中,我们首先从PictureBox中获取图像并创建一个Graphics对象。然后,我们使用Graphics对象在图像上绘制一个红色矩形,并将修改后的图像设置回PictureBox。
您可以根据需要更改矩形的位置和大小。
c# 多线程中 pictureBox图片上显示红色ROI
要在pictureBox中显示红色ROI,你需要在多线程中使用`Invoke`方法更新UI。
以下是一个示例代码:
```csharp
private void UpdateROI(Rectangle roi)
{
if (pictureBox1.InvokeRequired)
{
pictureBox1.Invoke((MethodInvoker)delegate ()
{
UpdateROI(roi);
});
}
else
{
using (Graphics g = pictureBox1.CreateGraphics())
{
Pen pen = new Pen(Color.Red, 2);
g.DrawRectangle(pen, roi);
}
}
}
```
在这个示例中,`UpdateROI`方法会在多线程中被调用,如果当前线程不是UI线程,那么将使用`Invoke`方法在UI线程上执行`UpdateROI`方法。
在UI线程上,使用`CreateGraphics`方法创建一个Graphics对象,并使用`DrawRectangle`方法绘制一个红色边框的矩形。
你可以在你的代码中调用`UpdateROI`方法来更新pictureBox中的ROI。
阅读全文