imagemagick 命令行调整大小为固定宽度/高度保持比例

imagemagick 命令行调整大小为固定宽度/高度保持比例

我目前正在使用 PHP,但是它的重采样不足以满足我的需要。

假设我有一张 200x200 的图像。我需要将其调整为 100x50。然后我需要将其调整为尽可能干净地缩小(这里是 50x50),但位于 100x50 图像的中心(使用背景/透明颜色填充左/右填充)

我在 PHP 中运行过这个。但结果还是不够好。

我无法识别这方面所需的命令行指令...如果这有助于指导 imagemagick,我可以传递所有 x/y/width/height。

答案1

使用 imagemagick 您可以执行以下操作:

convert <input_filename> -resize '100x50>' -background '#ffffff00' -gravity center -extent 100x50 <output_filename>

解释:

  • -resize '100x50>调整大小以适合 100x50 的框并保持纵横比。>意味着它永远不会放大输入图像,例如,如果输入是 40x20,它将保持原样。
  • -background '#ffffff00'设置任何必要的填充的背景颜色。在本例中,它是完全透明的(alpha 值00),但您当然可以使用任何颜色。只有当您的输出文件类型支持透明度时,透明才会起作用。
  • -gravity center表示将缩放后的图像置于填充后图像的中心。
  • -extent 100x50意思是用给定的背景颜色填充缩放后的图像,以填满 100x50 的框。

相关内容