【发布时间】:2015-02-01 15:00:37
【问题描述】:
我正在使用 ImageMagick.NET 使用坐标从图像中裁剪多边形。
大多数图像裁剪问题依赖于使用 4 个点的矩形裁剪图像,但是我需要使用 4 到 8 个点来裁剪多边形。
我正在使用以下代码创建一个蒙版和一个可绘制的多边形以应用于源图像,但结果是我得到的结果与我的预期相反。
根据http://www.imagemagick.org/Usage/compose/tables/,In 运算符应该得到我的结果,但它得到了图像的其余部分
MagickImage image = new MagickImage(imagePath);
MagickImage dest = new MagickImage(new MagickColor(Color.White), 1120, 450);
MagickImage mask = new MagickImage(new MagickColor(Color.White), 1120, 450);
mask.FillColor = new MagickColor(Color.Black);
List<Coordinate> coordinates = new List<Coordinate>();
coordinates.Add(new Coordinate(0, 0));
coordinates.Add(new Coordinate(0, 300));
coordinates.Add(new Coordinate(100, 300));
coordinates.Add(new Coordinate(100, 450));
coordinates.Add(new Coordinate(1120, 450));
coordinates.Add(new Coordinate(1120, 150));
coordinates.Add(new Coordinate(850, 150));
coordinates.Add(new Coordinate(850, 0));
mask.Draw(new DrawablePolygon(coordinates));
MagickGeometry offset = new MagickGeometry(0,0,0,0);
dest.Alpha(AlphaOption.Transparent);
dest.ClipMask = mask;
dest.Composite(image, offset, CompositeOperator.Out);
dest.Write(@"C:\temp\test.png");
任何帮助将不胜感激
【问题讨论】:
标签: c# imagemagick crop