簡體   English   中英

在位圖上使用SetPixel時如何更改像素大小?

[英]How do i change the pixel size when using SetPixel on a bitmap?

newbitmap.SetPixel((int)clouds1[x].X, (int)clouds1[x].Y, Color.Red);

我將像素設置為具有紅色的新位圖。 在form1中,我在pictureBox3中顯示newbitmap:

pictureBox3.Image = CloudEnteringAlert.newbitmap;

但是像素很小,幾乎無法在pictureBox3上看到。 如何使像素更大?

您不能,但是可以畫一個圓。

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

如果不是,請相應地調整擴展方法。 將此類擴展方法放在靜態類中。

為了獲得平滑的圓圈,可以使用抗鋸齒。 在繪制圓之前,將Graphics對象的SmoothingMode設置為所需的值:

g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM