使用 ImageMagick 调整大小,然后从命令行裁剪图像
Posted
技术标签:
【中文标题】使用 ImageMagick 调整大小,然后从命令行裁剪图像【英文标题】:Use ImageMagick to resize and then crop an image from command line 【发布时间】:2015-12-23 12:38:45 【问题描述】:我有一个 jpg 图像,我想调整如下:
保持图像的纵横比不变,将其调整为尽可能接近 640x360,而不会使新图像的任何部分保持“空白”/“空”。也就是调整大小后变成800x360或者640x420可以,但是400x360(因为400小于640)或者640x200(因为200小于360)就不行了。
之后,我需要将上面调整大小的图像居中裁剪为 16:9 的比例。
可以使用 imagemagick 实现这一目标的最简单的 shell 命令集是什么?
我都试过了
convert 'orig_image.jpg' -resize 640x360 -gravity Center -crop 640x360+0+0 'changed_image.jpg'
和
convert 'orig_image.jpg' -resize 640x360 -gravity Center -crop 640x360+0+0 +repage 'changed_image.jpg'
但没有一个有效。 -resize 640x360
正在调整图像大小,但没有满足我的上述要求。也就是说,2448x3264
正在调整大小为 270x360
而不是 640x480
【问题讨论】:
这只是懒惰。您可以自己轻松查找:ImageMagick 有一个很棒的文档。请参阅“调整大小和缩放示例”imagemagick.org/Usage/resize 和“剪切和边界示例”imagemagick.org/Usage/crop 我已经读过了。我读后明白的是,我需要做convert 'orig_image.jpg' -resize 640x360 -gravity Center -crop 640x360+0+0 'changed_image.jpg'
。但它不起作用。它只是进行调整大小,而不是在那之后应该对调整大小的图像进行的裁剪。如果您对此有帮助,请回复。
嗯。 +repage
有帮助吗? convert 'orig_image.jpg' -resize 640x360 -gravity Center -crop 640x360+0+0 +repage 'changed_image.jpg'
。如果没有,为什么不编辑问题以显示您现在正在做什么(convert
调用),以及现在正在发生的事情(包括说明问题的图像)
还是不行。我编辑了问题。
你能添加原始图像和你现在得到的结果吗? (理想的结果之一)
【参考方案1】:
也许你可以使用这个:
convert orig.jpg \
-resize 640x360^ \
-gravity Center \
-extent 640x360
changed.jpg
-resize 64x360^
保留最小纵横比,-extent 640x360
(没有+0+0
)尊重-gravity Center
【讨论】:
以上是关于使用 ImageMagick 调整大小,然后从命令行裁剪图像的主要内容,如果未能解决你的问题,请参考以下文章
使用 imagemagick 将垫调整大小的蒙版应用于裁剪调整大小的图像
调整 GIF 动画、pil/imagemagick、python 的大小