0

我正在使用 .net 的图像魔法来裁剪和调整图像大小。但是这个库的问题是它只裁剪了图像的底部。有没有什么方法可以上下左右均匀裁剪呢?

编辑问题:

  MagickGeometry size = new MagickGeometry(width, height);
  size.IgnoreAspectRatio = maintainAspectRatio;
  imgStream.Crop(size);
4

2 回答 2

3

裁剪将始终使用 Magick.NET/ImageMagick 中指定的宽度和高度,因此无需设置size.IgnoreAspectRatio. 如果你想在图像中心切出一个特定区域,你应该使用另一个重载的 Crop,它也有一个 Gravity 作为参数:

imgStream.Crop(width, height, Gravity.Center);
于 2015-07-27T19:06:39.293 回答
2

如果size变量是 , 的实例MagickGeometry,那么应该有一个X&Y偏移属性。我不熟悉,但我想它会像......

MagickGeometry size = new MagickGeometry(width, height);
size.IgnoreAspectRatio = maintainAspectRatio;
// Adjust geometry offset to center of image (same as `-gravity Center`)
size.Y = imgStream.Height / 2 - height / 2;
size.X = imgStream.Width / 2 - width / 2;
imgStream.Crop(size);
于 2015-07-27T18:52:18.973 回答