linux 服务器用Imagemagick 批量缩小图片并打水印

2016年02月28日 00:21 by:佚名网友

安装Imagemagick

首先要安装Imagemagick

CentOS上安装

  1. yum install ImageMagick -y

Debian上安装

  1. apt-get install ImageMagick -y

批处理脚本

  1. #!/bin/bash
  2. for each in /要处理的图片文件夹/*{.jpg,.gif}
  3. do
  4. s=`du -k $each | awk '{print $1}'`
  5. if [ $s -gt 10 ]; then
  6. convert -quality 80 -resize 600x800 $each $each
  7. composite -gravity southeast -dissolve 80 /水印文件夹/mark.jpg $each $each 2>/dev/null
  8. echo "$each: done!"
  9. fi
  10. done
  11. exit 0


本脚本产生的新图片会覆盖原来的

  1. convert -quality 80 -resize 600x800 $each $each

这个是进行图片缩小的 -quality 80代表图片质量,600x800是图片的大小600宽X800高,全部产生的图片大小都在600X800范围内。

  1. composite -gravity southeast -dissolve 80 /水印文件夹/mark.jpg $each $each 2>/dev/null

这句是加图片水印的,文字水印的没写.-gravity southeast这个决定图片水印的位置south就是南east就是东也就是图片的右下角-dissolve 80这个是设置水印的透明度的.越小越透明.

  1. $s -gt 10

这个是忽略小于10K的文件.防止给缩略图加上水印.

如果你保存的脚本名为water.sh 执行脚本

  1. sh ./water.sh