批量处理图片

背景

这个站点的壁纸是每天一换的,但是图太大了还是对网站打开速度会有影响,所以还是想试一下压缩。我想起之前云图书也有类似的需求,当时是做图解词典的所有图片的格式转换,当时没有找到好的工具,现在发现linux上面有一个工具(ImageMagick)可以比较简单的实现。

目标:对图片进行批量的压缩

-rw-r--r-- 1 root root  220623 Jan 18 15:18 desktop10.jpg
-rw-r--r-- 1 root root  362425 Jan 18 15:18 desktop11.jpg
-rw-r--r-- 1 root root  587285 Jan 18 15:18 desktop12.jpg
-rw-r--r-- 1 root root  731743 Jan 18 15:18 desktop13.jpg
-rw-r--r-- 1 root root  277240 Jan 18 15:18 desktop14.jpg
-rw-r--r-- 1 root root  652038 Jan 18 15:18 desktop15.jpg
-rw-r--r-- 1 root root  571932 Jan 18 15:18 desktop16.jpg
-rw-r--r-- 1 root root  704235 Jan 18 15:18 desktop17.jpg
-rw-r--r-- 1 root root  547629 Jan 18 15:18 desktop18.jpg
-rw-r--r-- 1 root root  407052 Jan 18 15:18 desktop19.jpg
-rw-r--r-- 1 root root  110582 Jan 18 15:18 desktop1.jpg
-rw-r--r-- 1 root root  368359 Jan 18 15:18 desktop20.jpg
-rw-r--r-- 1 root root  382747 Jan 18 15:18 desktop21.jpg
-rw-r--r-- 1 root root  362020 Jan 18 15:18 desktop22.jpg
-rw-r--r-- 1 root root  401649 Jan 18 15:18 desktop23.jpg
-rw-r--r-- 1 root root  640100 Jan 18 15:18 desktop24.jpg
-rw-r--r-- 1 root root  657314 Jan 18 15:18 desktop25.jpg
-rw-r--r-- 1 root root 1129796 Jan 18 15:18 desktop26.jpg
-rw-r--r-- 1 root root  337205 Jan 18 15:18 desktop27.jpg
-rw-r--r-- 1 root root  524649 Jan 18 15:18 desktop28.jpg
-rw-r--r-- 1 root root  577739 Jan 18 15:18 desktop29.jpg
-rw-r--r-- 1 root root  528440 Jan 18 15:18 desktop2.jpg
-rw-r--r-- 1 root root  547629 Jan 18 15:18 desktop30.jpg
-rw-r--r-- 1 root root  423883 Jan 18 15:18 desktop31.jpg
-rw-r--r-- 1 root root  291147 Jan 18 15:18 desktop3.jpg
-rw-r--r-- 1 root root  687615 Jan 18 15:18 desktop4.jpg
-rw-r--r-- 1 root root  411364 Jan 18 15:18 desktop5.jpg
-rw-r--r-- 1 root root  501790 Jan 18 15:18 desktop6.jpg
-rw-r--r-- 1 root root  285364 Jan 18 15:18 desktop7.jpg
-rw-r--r-- 1 root root  375550 Jan 18 15:18 desktop8.jpg
-rw-r--r-- 1 root root  464538 Jan 18 15:18 desktop9.jpg
-rw-r--r-- 1 root root  110582 Jan 18 15:18 desktop.jpg

处理

使用find命令结合-exec来执行convert操作

find . -name "*.jpg"  -exec convert -quality 60 {} {} \;  

操作可能会出现下面这种情况,我是在后面加入了空格\;就没问题了。应该是命令的参数问题。

find: missing argument to `-exec'  

处理结果

大小变成了原来的40%

-rw-r--r-- 1 root root  89122 Jan 21 13:48 desktop10.jpg
-rw-r--r-- 1 root root 145149 Jan 21 13:48 desktop11.jpg
-rw-r--r-- 1 root root 250310 Jan 21 13:48 desktop12.jpg
-rw-r--r-- 1 root root 320144 Jan 21 13:48 desktop13.jpg
-rw-r--r-- 1 root root 114067 Jan 21 13:48 desktop14.jpg
-rw-r--r-- 1 root root 281938 Jan 21 13:48 desktop15.jpg
-rw-r--r-- 1 root root 246618 Jan 21 13:48 desktop16.jpg
-rw-r--r-- 1 root root 297319 Jan 21 13:48 desktop17.jpg
-rw-r--r-- 1 root root 236684 Jan 21 13:48 desktop18.jpg
-rw-r--r-- 1 root root 155237 Jan 21 13:48 desktop19.jpg
-rw-r--r-- 1 root root  71874 Jan 21 13:48 desktop1.jpg
-rw-r--r-- 1 root root 123999 Jan 21 13:48 desktop20.jpg
-rw-r--r-- 1 root root 155109 Jan 21 13:48 desktop21.jpg
-rw-r--r-- 1 root root 142263 Jan 21 13:48 desktop22.jpg
-rw-r--r-- 1 root root 174710 Jan 21 13:48 desktop23.jpg
-rw-r--r-- 1 root root 266235 Jan 21 13:48 desktop24.jpg
-rw-r--r-- 1 root root 282398 Jan 21 13:48 desktop25.jpg
-rw-r--r-- 1 root root 529472 Jan 21 13:48 desktop26.jpg
-rw-r--r-- 1 root root 129489 Jan 21 13:48 desktop27.jpg
-rw-r--r-- 1 root root 234390 Jan 21 13:48 desktop28.jpg
-rw-r--r-- 1 root root 215456 Jan 21 13:48 desktop29.jpg
-rw-r--r-- 1 root root 191965 Jan 21 13:48 desktop2.jpg
-rw-r--r-- 1 root root 236684 Jan 21 13:48 desktop30.jpg
-rw-r--r-- 1 root root 183296 Jan 21 13:48 desktop31.jpg
-rw-r--r-- 1 root root 118964 Jan 21 13:48 desktop3.jpg
-rw-r--r-- 1 root root 298012 Jan 21 13:48 desktop4.jpg
-rw-r--r-- 1 root root 147654 Jan 21 13:48 desktop5.jpg
-rw-r--r-- 1 root root 194234 Jan 21 13:48 desktop6.jpg
-rw-r--r-- 1 root root 104759 Jan 21 13:48 desktop7.jpg
-rw-r--r-- 1 root root 149969 Jan 21 13:48 desktop8.jpg
-rw-r--r-- 1 root root 218199 Jan 21 13:48 desktop9.jpg
-rw-r--r-- 1 root root  71874 Jan 21 13:48 desktop.jpg

其他功能

基本上我能想到的功能都有了,可以man convert来查看。

  1. 来转换图像的格式
  2. 改变图像的大小
  3. 旋转图像
  4. 在图像上加上文字说明
  5. 模糊,裁剪,驱除污点,抖动,临近,图片上画图片,加入新图片,生成缩略图
comments powered by Disqus