我目前正在使用 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 的框。