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

如何使用ImageMagick递归批量调整图片为多尺寸并重命名删除原图

递归批量生成多尺寸JPG的ImageMagick实现方案

mogrify 仅支持单输入对应单输出,默认覆盖原文件,就算指定输出路径也无法单次为单张原图生成多份不同命名的输出,无法适配递归处理多尺寸的需求。使用系统自带的文件遍历能力搭配ImageMagick转换指令,可稳定实现全部需求。


Linux/macOS(Bash环境)可直接执行命令

先进入需要处理的根目录,执行以下命令即可:

find . -type f -name "*.jpg" -not -name "*-small.jpg" -not -name "*-medium.jpg" -not -name "*-large.jpg" -exec sh -c '
  for img do
    base="${img%.jpg}"
    # 生成small尺寸:固定宽度220px,保持宽高比
    magick "$img" -resize 220x "${base}-small.jpg"
    # 生成medium尺寸:固定高度324px,保持宽高比
    magick "$img" -resize x324 "${base}-medium.jpg"
    # 生成large尺寸:固定宽度1024px,保持宽高比
    magick "$img" -resize 1024x "${base}-large.jpg"
    # 所有尺寸生成完成后删除原图
    rm "$img"
  done
' sh {} +

操作提示:首次执行前可以先把rm "$img"行注释掉,先跑一遍确认生成的文件尺寸、命名、存储位置都符合预期,再恢复删除逻辑,避免误操作。

自定义调整说明

  • 尺寸规则修改:直接调整对应-resize参数即可:
    • 固定宽度等比缩放:格式为-resize 目标宽度x,例如需要宽度300px就写-resize 300x
    • 固定高度等比缩放:格式为-resize x目标高度,例如需要高度400px就写-resize x400
    • 限制在指定矩形范围内等比缩放:格式为-resize 目标宽x目标高,例如-resize 800x600会将图片缩放到最长边不超过对应值,始终保持宽高比
  • 命名规则修改:直接修改"${base}-后缀.jpg"中的后缀部分即可,例如需要生成缩略图可以把对应位置改为${base}-thumb.jpg
  • 版本兼容:如果使用ImageMagick 6版本,把命令中的magick替换为convert即可,参数逻辑完全一致
  • 重复执行安全:find命令内置了过滤规则,会自动跳过已经生成的带-small/-medium/-large后缀的图片,重复执行不会重复处理已生成的尺寸文件;删除逻辑在三个转换命令全部执行完成后才会触发,不会出现未生成完就删除原图的问题
  • 路径兼容:所有文件路径变量都加了双引号处理,支持目录、文件名带空格的场景

Windows(PowerShell环境)适配命令

进入需要处理的根目录后执行以下命令即可,逻辑与Bash版本完全一致:

Get-ChildItem -Path . -Recurse -Filter *.jpg | Where-Object {
  $_.Name -notmatch '-(small|medium|large)\.jpg$'
} | ForEach-Object {
  $base = $_.FullName -replace '\.jpg$',''
  magick $_.FullName -resize 220x "$base-small.jpg"
  magick $_.FullName -resize x324 "$base-medium.jpg"
  magick $_.FullName -resize 1024x "$base-large.jpg"
  # 确认生成结果无误后再放开下面这行的删除逻辑
  # Remove-Item $_.FullName
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 21:09:24