离线图片批量处理

2021/10/29 tips 共 1006 字,约 3 分钟

问题场景

  • 本地对图片进行快速的批量处理

解决方法

使用ImageMagick

ImageMagick

一款免费开源的图片编辑软件,既可通过命令行使用,也可通过C/C++、Perl、Java、PHP、Python或Ruby调库编程使用。

可以先用 convert 修改单个文件,对结果满意的话再用 mogrify 进行批量处理

主要功能(以6.2.7版本为例)

  • 批量文件格式转换
    • 把当前目录下的gif转换成png后存在newdir中:mogrify -path newdir -format png *.gif
  • 批量缩放图像
    • 把当前目录下的png尺寸放大到200%后存在newdir中:mogrify -path newdir -resize 200% *.png
    • 也可以指定长宽(加上!就不考虑形变的问题):convert page200.png -resize 100x152! page100.png
    • 转换时还可以指定压缩等级 -quality 95
    • -scale 50% 等比例缩放
  • 批量旋转
    • mogrify -path newdir -rotate -90 *.png
    • 左右翻转:-flop 上下翻转:-flip
  • 设定背景颜色
    • convert page200.png -background blue r10.png
  • 截取
    • convert -crop 30x30+10+10 test.png dst.png 宽x高+横坐标偏移量+纵坐标偏移量
    • -trim 自动裁剪(剔除图片周围空白的部分或边框等)
  • 通道
    • convert -channel R -separate test.png dst.png
  • 可以借助 convert 命令将多张图片组合为一张重复播放的 GIF 动图
    • convert -delay 20 -loop 0 *.png out.gif 其中 -delay 选项用于指定图片切换的时间间隔,单位为毫秒。
  • 组合多张图片
    • convert x1.png x2.png x3.png -append out.png (垂直方向)
    • convert x1.png x2.png x3.png +append out.png(水平方向)
  • 添加水印
    • convert image.jpg -fill red -draw “text 20 20 ‘© 2019 example.com’” out.jpg

参考

  • 版本7之前的:https://legacy.imagemagick.org/Usage/
  • 版本7之后:https://imagemagick.org/script/command-line-processing.php

文档信息

Search

    Table of Contents