嗨我试图得到一个矩形,完全包围通过GDI +绘制的形状,当笔很厚时。查找GDI +形状的边界
这是我的测试代码,演示,我刚刚加入到mybase.load来测试..
Dim bmp As New Bitmap(500, 500)
Dim g As Graphics = Graphics.FromImage(bmp)
g.Clear(Color.Transparent)
g.SmoothingMode = SmoothingMode.HighQuality
g.PixelOffsetMode = PixelOffsetMode.Default
' Setup Matrix
Dim mat As New Matrix
mat.Translate(100, 100)
g.Transform = mat
' Draw Lines and Fill
Dim gp As New GraphicsPath
gp.AddLines({New Point(50, 0), New Point(100, 100), New Point(0, 100)})
gp.CloseAllFigures() ' Closes Open Path (ie join back to origin)
g.FillPath(New SolidBrush(Color.Beige), gp)
' Add Border to Graphics Path
g.DrawPath(New Pen(New SolidBrush(Color.Black), 20), gp)
g.DrawRectangle(New Pen(New SolidBrush(Color.Red), 1), Rectangle.Truncate(gp.GetBounds))
' Tidy Up
g.ResetTransform()
mat.Dispose()
' Set Picturebox Value
PictureBox1.Image = bmp
我会发布的图像,但该论坛不让我。
我想边界矩形也包括笔宽。我用上面的三角形演示了我不能添加笔宽/ 2。
任何想法?
朱利安
使用GraphicsPath.GetBounds(Matrix,Pen)方法。 – 2014-10-04 14:12:53
您好我正在重温这并尝试GraphicsPath.GetBounds(矩阵,笔)方法,但无论我做什么,我都不能让它正常工作。当然,它会返回结果,但它们看起来与我期望的三角形稍宽的笔宽不同。有任何想法吗? – 2015-05-25 12:01:54