[英]VB.NET Drawing Multiple Images onto a PictureBox at Different Locations
[英]Drawing a Gradient Circle into a PictureBox with VB.NET
我有一个将图像放入PictureBox
并在其中画一个圆圈的应用程序。
该应用程序包括两个步骤:
PictureBox
PictureBox
内图片的X, Y
将圆直接绘制到PictureBox
中。 (例如,如果给定的坐标是44,44
,那么圆的中心将在44,44
。 我的目标是使用最有效的方法将橙色渐变圆(见下图)绘制到PictureBox
中已经存在的图像中,并将其覆盖。 最好,我想要一种不将图像保存到计算机的方法,因为盒子内的图像每秒都会上传一次。
另外,我正在考虑使用System.Drawing
直接在图片picturebo
x 中存在的图片中绘制一个圆圈,但它看起来不是最好的(圆圈是颗粒状和像素化的)并且没有工作渐变选项为了我。
下图中显示了我要绘制的圆的示例。 我在下面附上了一张画在PictureBox
上的圆圈应该是什么样子的图片:
我的想法是直接将这个圆圈画到PictureBox
中,而不必将图片保存到 PC,因为PictureBox
中的这个图像每秒都会更新一次,效率不高。
我怎样才能做到这一点? System.Drawing
中是否有 function 可以执行此操作,或者我可以使用 NuGet Package? (在PictureBox
中已经存在的图像上绘制橙色圆形渐变圆?
这是一个绘制橙色椭圆的示例,该椭圆在PictureBox
内从中心透明到边缘不透明:
Private Sub PictureBox1_Paint(sender As Object, e As PaintEventArgs) Handles PictureBox1.Paint
Dim bounds = PictureBox1.Bounds
Using path As New GraphicsPath
path.AddEllipse(bounds)
Using brush As New PathGradientBrush(path)
brush.CenterPoint = New PointF(bounds.Width / 2.0F, bounds.Height / 2.0F)
brush.CenterColor = Color.FromArgb(0, Color.Orange)
brush.SurroundColors = {Color.Orange}
brush.FocusScales = PointF.Empty
e.Graphics.FillRectangle(brush, bounds)
End Using
End Using
End Sub
您可以更改设置bounds
变量的方式,使其成为正确大小和位置的圆圈,并根据需要更改 colors。
编辑:应得的信用,我从这个问题的一个答案中得到了基础。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.