使用 imagemagick .net 从两侧均匀裁剪图像
Evenly cropping of an image from both side using imagemagick .net
我正在使用 .net 的图像魔术来裁剪和调整图像大小。但是这个库的问题是它只裁剪图像的底部。有什么办法可以上下左右均匀裁剪吗?
已编辑问题:
MagickGeometry size = new MagickGeometry(width, height);
size.IgnoreAspectRatio = maintainAspectRatio;
imgStream.Crop(size);
如果 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);
Crop 将始终使用 Magick 中指定的宽度和高度。NET/ImageMagick 因此无需设置 size.IgnoreAspectRatio
。如果你想剪掉图像中心的特定区域,你应该使用另一个重载 Crop ,它也有一个 Gravity 作为参数:
imgStream.Crop(width, height, Gravity.Center);
我正在使用 .net 的图像魔术来裁剪和调整图像大小。但是这个库的问题是它只裁剪图像的底部。有什么办法可以上下左右均匀裁剪吗?
已编辑问题:
MagickGeometry size = new MagickGeometry(width, height);
size.IgnoreAspectRatio = maintainAspectRatio;
imgStream.Crop(size);
如果 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);
Crop 将始终使用 Magick 中指定的宽度和高度。NET/ImageMagick 因此无需设置 size.IgnoreAspectRatio
。如果你想剪掉图像中心的特定区域,你应该使用另一个重载 Crop ,它也有一个 Gravity 作为参数:
imgStream.Crop(width, height, Gravity.Center);