Linux 怎么批量裁剪图片尺寸?命令行示例

发布时间 - 2025-12-04 00:00:00    点击率:
最常用高效的方式是使用ImageMagick的mogrify或convert命令进行批量裁剪,支持保持比例、居中裁切、指定区域等操作。安装通过包管理器完成,如Ubuntu用sudo apt install imagemagick。推荐居中裁剪命令:mogrify -resize '800x600^' -gravity center -extent 800x600 .jpg,实现等比放大后从中心裁剪至目标尺寸。需保留原图时可用for循环结合convert输出新文件,如for img in .jpg; do convert "$img" -resize '800x600^' -gravity center -extent 800x600 "resized_$img"; done。精准裁剪可用-crop参数,格式为WxH+X+Y,例如mogrify -crop 400x300+100+50 .png表示从(100,50)坐标开始截取。统一宽度并居中裁高可组合命令:for i in .jpg; do convert "$i" -resize '500x' -gravity center -extent 500x300 "crop_${i}"; done。操作前建议先用ls和identify查看文件信息,试运行少量案例,并创建独立输出目录避免覆盖,关键在于掌握resize模式(x

Linux 下批量裁剪图片尺寸,最常用且高效的方式是用 ImageMagickconvert 或更现代的 mogrify 命令。它们支持批量处理、保持原图比例、指定裁剪区域、自动适配等,无需图形界面。

安装 ImageMagick

大多数发行版自带或可通过包管理器安装:

  • Ubuntu/Debian:sudo apt install imagemagick
  • CentOS/RHEL/Fedora:sudo dnf install ImageMagicksudo yum install ImageMagick
  • macOS(Homebrew):brew install imagemagick

按固定尺寸中心裁剪(推荐常用场景)

比如把所有 JPG 图片统一裁成 800×600 像素,居中截取(超出部分被裁掉):

mogrify -resize '800x600^' -gravity center -extent 800x600 *.jpg

说明:

  • -resize '800x600^':放大到至少 800×600(保持比例,^ 表示“最小边匹配”)
  • -gravity center:设定锚点为图像中心
  • -extent 800x600:扩展或裁剪为精确 800×600,多余部分从中心向外裁掉

⚠️ 注意:mogrify 会直接修改原图。如需保留原图,先复制或改用 convert 批量输出新文件:

for img in *.jpg; do convert "$img" -resize '800x600^' -gravity center -extent 800x600 "resized_$img"; done

按坐标和宽高手动裁剪(精准控制)

例如从每张图左上角 (100,50) 开始,裁出 400×300 区域:

mogrify -crop 400x300+100+50 *.png

格式为 WxH+X+Y,X/Y 是裁剪框左上角坐标(原点在图像左上角)。

若要批量处理不同尺寸图片并统一裁成「宽度 500、高度按比例缩放后居中裁」,可组合使用:

for i in *.jpg; do convert "$i" -resize '500x' -gravity center -extent 500x300 "crop_${i}"; done

安全操作与小技巧

批量处理前建议:

  • 先用 ls *.jpg | head -5 确认目标文件范围
  • 对少量文件试运行,比如 convert a.jpg -resize 200x200 test.jpg
  • mkdir -p resized && for i in *.jpg; do convert "$i" ... "resized/$i"; done 隔离输出目录
  • 查看图片原始尺寸:identify -format "%f: %wx%h\n" *.jpg

基本上就这些。命令不复杂但容易忽略 resize 模式(x^!)和 gravity 配合 extent 的逻辑——搞清这三点,批量裁图就很稳了。


# linux  # centos  # ubuntu  # mac  # macos  # dnf  # cos  # for  # format  # 循环  # debian  # 管理器  # 先用  # 最常用  # 格式为  # 新文件  # 向外  # 自带  # 如需  # 若要  # 关键在于 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何处理异常和错误?(Handler示例)  微信小程序 五星评分(包括半颗星评分)实例代码  三星、SK海力士获美批准:可向中国出口芯片制造设备  利用JavaScript实现拖拽改变元素大小  php485函数参数是什么意思_php485各参数详细说明【介绍】  如何用虚拟主机快速搭建网站?详细步骤解析  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程  Laravel如何使用Sanctum进行API认证?(SPA实战)  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  Laravel如何使用.env文件管理环境变量?(最佳实践)  如何在Ubuntu系统下快速搭建WordPress个人网站?  历史网站制作软件,华为如何找回被删除的网站?  Laravel如何创建自定义Facades?(详细步骤)  如何用腾讯建站主机快速创建免费网站?  如何获取PHP WAP自助建站系统源码?  Python图片处理进阶教程_Pillow滤镜与图像增强  如何快速完成中国万网建站详细流程?  Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】  详解jQuery停止动画——stop()方法的使用  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  零基础网站服务器架设实战:轻量应用与域名解析配置指南  Laravel如何自定义分页视图?(Pagination示例)  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  如何在香港免费服务器上快速搭建网站?  如何确保西部建站助手FTP传输的安全性?  如何为不同团队 ID 动态生成多个“认领值班”按钮  如何在Windows服务器上快速搭建网站?  Laravel如何处理和验证JSON类型的数据库字段  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  如何制作一个表白网站视频,关于勇敢表白的小标题?  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  大型企业网站制作流程,做网站需要注册公司吗?  长沙做网站要多少钱,长沙国安网络怎么样?  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  如何在阿里云完成域名注册与建站?  googleplay官方入口在哪里_Google Play官方商店快速入口指南  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  ,怎么在广州志愿者网站注册?  Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  Laravel如何与Pusher实现实时通信?(WebSocket示例)  Laravel如何使用模型观察者?(Observer代码示例)  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程