newbitmap.SetPixel((int)clouds1[x].X, (int)clouds1[x].Y, Color.Red);
我将像素设置为红色的新位图。 在form1中,我在pictureBox3中显示了newbitmap:
pictureBox3.Image = CloudEnteringAlert.newbitmap;
但像素非常小,几乎无法在pictureBox3上看到。 如何让像素更大?
答案 0 :(得分:1)
你不能,但你可以画一个圆圈。
using(var g = Graphics.FromImage(newbitmap)) {
g.FillEllipse(Brushes.Red, (int)clouds1[x].X - radius,
(int)clouds1[x].Y - radius, 2 * radius, 2 * radius);
}
我创建了一个扩展方法,简化了绘制圆(这里有浮点坐标):
public static void FillCircle(this Graphics g, Brush brush,
PointF center, float radius)
{
g.FillEllipse(brush, center.X - radius, center.Y - radius,
radius + radius, radius + radius);
}
如果您的云为PoinF
,则可以这样称呼:
using(var g = Graphics.FromImage(newbitmap)) {
g.FillCircle(Brushes.Red, clouds1[x], radius);
}
如果没有,请相应地调整扩展方法。将此类扩展方法放在静态类中。
为了获得流畅的圆圈,您可以使用抗锯齿。在绘制圆圈之前,将SmoothingMode
对象的Graphics
设置为所需的值:
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;