我正在使用 .net 的图像魔法来裁剪和调整图像大小。但是这个库的问题是它只裁剪了图像的底部。有没有什么方法可以上下左右均匀裁剪呢?
编辑问题:
MagickGeometry size = new MagickGeometry(width, height);
size.IgnoreAspectRatio = maintainAspectRatio;
imgStream.Crop(size);
我正在使用 .net 的图像魔法来裁剪和调整图像大小。但是这个库的问题是它只裁剪了图像的底部。有没有什么方法可以上下左右均匀裁剪呢?
编辑问题:
MagickGeometry size = new MagickGeometry(width, height);
size.IgnoreAspectRatio = maintainAspectRatio;
imgStream.Crop(size);
裁剪将始终使用 Magick.NET/ImageMagick 中指定的宽度和高度,因此无需设置size.IgnoreAspectRatio
. 如果你想在图像中心切出一个特定区域,你应该使用另一个重载的 Crop,它也有一个 Gravity 作为参数:
imgStream.Crop(width, height, Gravity.Center);
如果size
变量是 , 的实例MagickGeometry
,那么应该有一个X
&Y
偏移属性。我不熟悉.net,但我想它会像......
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);