旋转和裁剪图像,同时保持其原始大小

Posted

技术标签:

【中文标题】旋转和裁剪图像,同时保持其原始大小【英文标题】:Rotate and crop an image, while keeping its original size 【发布时间】:2021-02-04 15:44:42 【问题描述】:

我有一张已知大小为 3072x2048 的 JPG 图片。现在我想将该图像旋转任意角度(例如 45),同时保持其原始大小。因此 - 在命令行上使用 ImageMagick - 我首先要旋转,然后裁剪图像,如下所示:

convert -rotate 45 -gravity center -crop 3072x2048 +repage original.jpg rotated-45.jpg

通过使用-gravity center,我指定裁剪图像的中心部分,这正是我想要的。此操作产生四个输出图像:

rotated-45-0.jpg rotated-45-1.jpg rotated-45-2.jpg rotated-45-3.jpg

第一张图片rotated-45-0.jpg 正是我想要得到的最终图片。其他三个我不需要。我可以删除它们,但我认为首先不生成这些“额外”图像会更好。所以我想我可以用这个命令来代替:

convert -rotate 45 -gravity center -crop 3072x2048+0+0 +repage original.jpg rotated-45.jpg

这只会产生一张输出图像,但是现在图像的左上角正在被裁剪。所以显然-gravity center 不再使用了。

任何想法我在这里缺少什么?

【问题讨论】:

【参考方案1】:

使用 ImageMagick,您可以将图像旋转任意度数,同时使用“-distort SRT”保持原始画布尺寸...

convert original.jpg -virtual-pixel black -distort SRT 45 rotated-45.jpg

使用“-virtual-pixel”指定您希望如何处理旋转前画布之外的部分。在这个例子中,我使用了“黑色”。您可以使用黑色、白色、背景、平铺、镜子或无。

【讨论】:

太好了,正是我想要的,谢谢。

以上是关于旋转和裁剪图像,同时保持其原始大小的主要内容,如果未能解决你的问题,请参考以下文章

在保持区域的同时旋转位图(矩形)

Imagemagick 裁剪同时保持大小

如何使用 VBA 在 Word 中将多个图像裁剪为相同大小,同时使其适合其容器形状

如何在保持图像纵横比的同时调整 UIButton 中的图像大小?

如何创建一个同时支持横向和纵向但不在它们之间旋转的视图控制器(保持其初始方向)

c# 在保持纵横比的同时将图像调整为不同的大小