旋转和裁剪图像,同时保持其原始大小
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
我指定裁剪图像的中心部分,这正是我想要的。此操作产生四个输出图像:
- 旋转 45-0.jpg
- 旋转-45-1.jpg
- 旋转-45-2.jpg
- 旋转-45-3.jpg
第一张图片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.
我有一张已知大小为 3072x2048 的 JPG 图片。现在我想将该图像旋转任意度数(例如 45),同时保持其原始大小。因此 - 在命令行上使用 ImageMagick - 我首先要旋转,然后裁剪图像,如下所示:
convert -rotate 45 -gravity center -crop 3072x2048 +repage original.jpg rotated-45.jpg
通过使用 -gravity center
我指定裁剪图像的中心部分,这正是我想要的。此操作产生四个输出图像:
- 旋转 45-0.jpg
- 旋转-45-1.jpg
- 旋转-45-2.jpg
- 旋转-45-3.jpg
第一张图片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.