ImageMagick的安裝和使用案例

ImageMagick是一個很好用的對圖片進行格式轉換、縮減大小、裁剪等等進行操作的工具,在windows和linux系統都可以安裝,因爲我們的環境是linux環境,所以我就以linux系統爲安裝環境進行測試。


系統環境:

# cat /etc/SuSE-release 

SUSE Linux Enterprise Server 11 (x86_64)

VERSION = 11

PATCHLEVEL = 2


一、編譯安裝環境


ImageMagick下載鏈接

https://www.imagemagick.org/download/ImageMagick.tar.gz


因爲生產環境需要對png格式的圖片進行修改,所以需要png庫的支持,這裏需要編譯libpng-1.5.8.tar.gz,相應的如果你的圖片格式是其他格式的,你就需要其他的庫文件的支持。


/home/sxzhou # ll

total 13532

-rw-r--r-- 1 root root 12769934 Mar  2 14:02 ImageMagick.tar.gz

-rw-r--r-- 1 root root  1059513 Mar  2 14:12 libpng-1.5.8.tar.gz


編譯安裝libpng

/home/sxzhou # tar -zxf libpng-1.5.8.tar.gz

/home/sxzhou # cd libpng-1.5.8/

/home/sxzhou/libpng-1.5.8 # ./configure

/home/sxzhou/libpng-1.5.8 # make && make install


編譯安裝ImageMagick

/home/sxzhou # tar -zxf ImageMagick.tar.gz 

/home/sxzhou # cd ImageMagick-7.0.5-0/

/home/sxzhou/ImageMagick-7.0.5-0 # ./configure --prefix=/usr/local/ImageMagick --enable-share --enable-static LDFLAGS="-L/usr/lib64" CPPFLAGS="-I/usr/include"


這一步之後在末尾可以看到對於png圖片格式的支持

  PANGO             --with-pango=yes            no

  PERL              --with-perl=no              no

  PNG               --with-png=yes              yes

  RAQM              --with-raqm=yes             no

  RSVG              --with-rsvg=no              no


/home/sxzhou/ImageMagick-7.0.5-0 # make && make install


/usr/local/ImageMagick # ldconfig /usr/local/lib


二、使用案例

2.1、對圖片大小進行修改

-resize 對圖片大小進行修改


/usr/local/ImageMagick/bin # ./convert -resize 500x300 /home/sxzhou/1.PNG /home/sxzhou/2.PNG

注意:

使用字母x代表乘號而不是*


參數說明:

500x300是指圖片的寬x長(也可以只指明寬或者長,例如-resize 500,指明寬度,長度會按比例進行相應縮減,-resize x300,指明長度,寬度會按比例進行相應縮減)


/home/sxzhou/1.PNG 爲源文件,也就是修改前的文件


/home/sxzhou/2.PNG 爲目標文件,也就是修改後的文件


2.2、按比例縮減圖片

-sample 按比例縮減圖片

/usr/local/ImageMagick/bin # ./convert -sample 50% /home/sxzhou/1.PNG /home/sxzhou/3.PNG


以字節爲單位顯示文件大小

/home/sxzhou # du -sk *.PNG

120     1.PNG

112     2.PNG

56      3.PNG


把3.PNG拉出來查看圖片大小(寬x高)可以發現也縮減了一半


2.3、對圖片進行優化以及批量修改圖片

在生產環境中經常會遇到對於圖片大小要求儘可能小而清晰度高的情況,這時候就需要對於圖片修改時加入優化的參數。


+profile “*” 去掉圖片的exif信息


-quality 85  對圖片的質量進行縮減(質量縮減直到75的範圍內,肉眼識別的差別基本很小)


如下面所示:

在生產環境如果遇到批量修改圖片,而且對於小於一定大小的圖片不進行壓縮,另外對於圖片前後名字不變,如果同時滿足以上的條件的話就需要組合命令。

/usr/local/ImageMagick/bin # ln -s /usr/local/ImageMagick/bin/convert /usr/bin/convert

修改前的圖片大小

/home/sxzhou/ # du -sk *.png

44      BG00.png

428     BG01.png

80      BG10.png

44      BG11.png

1788    BJ00.png

592     BJ01.png

96      BJ10.png


批量修改圖片

/home/sxzhou/ # find -name "*.png" -exec convert -resize '500x360>' {} {} \;

 

修改後的圖片大小

/home/sxzhou/ # du -sk *.png

44      BG00.png

208     BG01.png

80      BG10.png

44      BG11.png

256     BJ00.png

260     BJ01.png

96      BJ10.png


可以看到只有紅色部分標記的圖片改變了大小

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章