剪切多边形下的像素

时间:2018-03-13 00:05:34

标签: c# image graphics

我试图检索多边形下的像素;但是,我似乎无法准确地正确获取所有像素。以下是我的代码:

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'中的设置,但我无法弄清楚是什么。

0 个答案:

没有答案