Imagemagick 的使用

xuzikuan12 | Sep 1, 2020 required to read

Imagemagick 是一个强大的命令行图片处理工具,它可以实现众多的功能。
但是,作为一个合格的小白,我只使用它的批量转换功能,惭愧。
可以看这个链接学习各种命令行:https://imagemagick.org/script/command-line-processing.php

1. jpeg to jpg

把当前目录的 jpeg 图片转换成 jpg,并且按照数字 000-999 来命名

magick *.jpeg %03d.jpg

2. 批量压缩本地图片

我以前也不理解为什么要压缩图片,保留原图不好么。
后来几件事让我的观念有所转变。

  • 首先,现在一张照片实在是太大了,动辄 5Mb 以上。目前各类免费的个人云服务空间大概在 5 Gb~15 Gb 左右。存照片已经隐约不够了,再拍几个记录生活的小视频就更捉襟见肘了。

  • 其次,我了解到把图片压缩85%的画质损伤肉眼是很难分辨的,但是带来的体积缩小是惊人的,约 3~4 倍(直接除的那种)。谷歌就据此推出了高画质无限空间存储服务。
    鉴于目前离不开小米的 MIUI 系统,且云服务只有 14 Gb,我开始考虑自己手动压缩照片和视频了。

下面记录下批量压缩照片的bat脚本:

@echo off
for /f "tokens=1,2 delims=." %%i in ('dir /b input') do (
  echo %%i.%%j
  magick  .\input\%%i.%%j -quality 85 .\output\%%i-shink.jpg
)
pause

目录结构:

D:\Codes\Test>dir /s
 驱动器 D 中的卷是 Software
 卷的序列号是 1004-730F

 D:\Codes\Test 的目录

2020/09/08  16:53    <DIR>          .
2020/09/08  16:53    <DIR>          ..
2020/09/08  16:33    <DIR>          input
2020/09/08  16:52    <DIR>          output
2020/09/08  16:51               156 quality85.bat
               1 个文件            156 字节

 D:\Codes\Test\input 的目录

2020/09/08  16:33    <DIR>          .
2020/09/08  16:33    <DIR>          ..
2020/07/23  21:41        12,404,173 6ad3c54cc3aa767dfdf593869793764aed248b2b.jpg
               1 个文件     12,404,173 字节

 D:\Codes\Test\output 的目录

2020/09/08  16:52    <DIR>          .
2020/09/08  16:52    <DIR>          ..
2020/09/08  16:51         3,040,469 6ad3c54cc3aa767dfdf593869793764aed248b2b-shink.jpg
               1 个文件      3,040,469 字节

     所列文件总数:
               3 个文件     15,444,798 字节
               8 个目录 365,355,732,992 可用字节

把要压缩的照片放到 input 文件夹下,最终在 output 目录下生成压缩后的照片,后缀 -shrink.jpg。
这终究只是暂时缓解而已,还是寄希望于小米云服务可以提供高画质无限空间存储服务吧。

3. 压缩单个图片

magick .\input.jpg -quality 75 -resize 1000 output.jpg

4. 批量转换格式

magick mogrify -format jpg *.tif