先來介紹一下 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