如何通过ImageMagick的convert命令将横向图片转为纵向并指定像素高度?
解决ImageMagick横向转纵向时精确控制原图位置的问题
当然可以指定精确的像素偏移来控制原图在纵向画布中的位置,不用局限于-gravity的预设选项。
你的当前命令是将原图缩放到1670x760后,扩展为1670x2288的纵向画布,但-gravity只能提供居中、靠上/下等固定位置,要实现像素级精确控制,直接在-extent参数后添加偏移量即可:
convert sample_img.jpg -resize 1670x760 -background white -interlace plane -extent 1670x2288+0+Y vertical_img.jpg
参数解释:
1670x2288是目标纵向画布的尺寸+0+Y是偏移量:+0表示水平方向无偏移(因为原图和画布宽度一致,刚好填满)+Y是原图顶部距离新画布顶部的像素值,你可以根据需求替换成具体数字
示例场景:
- 若希望原图顶部距离画布顶部留300像素白边:
convert sample_img.jpg -resize 1670x760 -background white -interlace plane -extent 1670x2288+0+300 vertical_img.jpg - 若希望原图底部距离画布底部留200像素白边:
先计算Y值:2288 - 760 - 200 = 1328,命令为:convert sample_img.jpg -resize 1670x760 -background white -interlace plane -extent 1670x2288+0+1328 vertical_img.jpg
这种方式能完全精准控制原图在画布中的垂直位置,满足你指定像素高度的需求。
内容的提问来源于stack exchange,提问作者alessmar
相关产品推荐
相关产品推荐

