You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ImageMagick参数中引用图片宽高?实现任意图片转正方形

如何用ImageMagick将任意尺寸图片转为带黑边的正方形?

ImageMagick支持通过fx表达式实现这个需求,你可以用%[fx:max(w,h)]动态获取图片宽高中的最大值,以此作为正方形的边长。以下是适配任意尺寸图片的PowerShell命令:

magick.exe convert -background black -gravity center `
-resize "%[fx:max(w,h)]x%[fx:max(w,h)]^" -extent "%[fx:max(w,h)]x%[fx:max(w,h)]" `
-set filename:original '%t' '.\*.jpg' './%[filename:original]-resized.jpg'

关键参数说明:

  • %[fx:max(w,h)]:通过ImageMagick的fx计算式,自动取当前图片宽度(w)和高度(h)的最大值,作为正方形的边长
  • -resize "%[fx:max(w,h)]x%[fx:max(w,h)]^":^符号表示保持图片比例,只缩放至不超过目标尺寸(避免拉伸变形)
  • -extent "%[fx:max(w,h)]x%[fx:max(w,h)]":将图片裁剪/扩展到计算出的正方形尺寸,结合-gravity center和-background black,会用黑色填充空白区域

你之前尝试的max(%w,%h)写法不被支持,是因为%w/%h这类变量不能直接用于resize或extent的尺寸参数中,必须通过fx表达式完成动态计算。

内容的提问来源于stack exchange,提问作者Marco Eckstein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 23:46:00