![](/img/trans.png)
[英]Why i'm getting exception when using SetPixel: SetPixel is not supported for images with indexed pixel formats?
[英]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.