先来介绍一下 ImageMagick。
ImageMagick(简称 IM)是一个支持 GPL 协议的开源免费软件包。
它由一组命令行工具组成的。
它可以对超过 100 种的图像格式(包括 DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, 和 TIFF等等),进行读、写、编辑和转换的操作。
它支持多数主流操作系统,其中包括 UNIX、Mac OS X 和 Windows。
IM 的主页是 http://www.imagemagick.org/ 。你可以在那里下载它的源代码或可执行文件。
一般人可以直接下载它的 Windows 发行版。地址是:http://www.imagemagick.org/script/binary-releases.php#windows 。
有 6 种格式可供选择,如果你不清楚自己要什么,我建议你下载 Q16 的 static 版。
先来看看 ImageMagick 能做些什么:
1、批量旋转、分割,并顺序编号
2、自动批量切除白边(auto-crop)
安装Imagemagick
首先要安装Imagemagick
CentOS上安装
yum install ImageMagick -y
Debian上安装
apt-get install ImageMagick -y
3、自动倾斜校正(deskew)
4、批量加标注
5、批量去标注
6、批量加水印
7、批量去水印
Imagemagick批量压缩图片形成缩略图
首先得安装ImageMagick,linux中批量缩小图片的这个工具超级强大
批量缩放图片到指定尺寸的命令:
for img in `ls *.jpg` ; do convert -sample 25%x25% $img thumb-$img ; done
#这个命令是批量缩小25%
可以只指定宽度或者高度等比缩放
例如只指定宽度等比缩放的命令:
# for img in `ls *.jpg` ; do convert -sample 200 $img thumb-$img ; done
或者只指定高度等比缩放:
# for img in `ls *.jpg` ; do convert -sample x200 $img thumb-$img ; done
为当前目录的所有图像生成缩略图
for img in `ls*.jpg` do convert -sample 25%x25% $img thumb-$img done
批量缩小根目录文件夹中的图片, 如果宽度大于900px就缩小,否则不动:
for img in `ls */*.jpg` ; do convert -resize "900 >" $img $img ; done
注: -resize 是缩小,-sample 是压缩
注意:为保险起见,压缩图片前可以先拷贝备份一下,安然再压缩就可以了: 例如
cp -rf upload/* upload2/
Imagemagick 批量缩小图片并打水印
IM 有好几种缩放图像的方法,在这里我只讲最基本的 resize 命令。
批处理脚本
#!/bin/bash
for each in /要处理的图片文件夹/*{.jpg,.gif}
do
s=`du -k $each | awk '{print $1}'`
if [ $s -gt 10 ]; then
convert -quality 80 -resize 600x800 $each $each
composite -gravity southeast -dissolve 80 /水印文件夹/mark.jpg $each $each 2>/dev/null
echo "$each: done!"
fi
done
exit 0
本脚本产生的新图片会覆盖原来的
convert -quality 80 -resize 600x800 $each $each
这个是进行图片缩小的 -quality 80代表图片质量,600x800是图片的大小600宽X800高,全部产生的图片大小都在600X800范围内。
composite -gravity southeast -dissolve 80 /水印文件夹/mark.jpg $each $each 2>/dev/null
这句是加图片水印的,文字水印的没写.-gravity southeast这个决定图片水印的位置south就是南east就是东也就是图片的右下角-dissolve 80这个是设置水印的透明度的.越小越透明.
$s -gt 10
这个是忽略小于10K的文件.防止给缩略图加上水印.
如果你保存的脚本名为water.sh 执行脚本
sh ./water.sh