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

Rotate and crop an image, while keeping its original size

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

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

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

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

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

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

知道我在这里遗漏了什么吗?

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

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

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