我试图检索多边形下的像素;但是,我似乎无法准确地正确获取所有像素。以下是我的代码:
private void DrawPolygon()
{
PointF[] pts = new PointF[]{new PointF(5.196057f, 4.13434839f), new PointF(5.528517f, 4.621298f), new PointF(7.073008f, 6.5661006f), new PointF(5.28491259f, 9.206118f), new PointF(4.80768776f, 6.595068f), new PointF(5.196057f, 4.13434839f)};
GraphicsPath gp = new GraphicsPath(FillMode.Alternate);
gp.AddPolygon(pts);
Bitmap bmp = Bitmap.FromFile("...");
Graphics g = Graphics.FromImage(bmp);
g.SmoothingMode = SmoothingMode.None;
g.PixelOffsetMode = PixelOffsetMode.Half;
using (Brush b = new SolidBrush(Color.White))
{
g.FillPath(b, gp);
}
bmp.Save("...");
}
在下图(左)中,您可以看到多边形下的多个像素被排除在外。右边的图像是原始图像,所有像素都有一个值。我觉得我错过了' Graphics'中的设置,但我无法弄清楚是什么。