Java圖片處理 - 安裝ImageMagick庫使用convert命令
之所以要使用第三方庫來處理圖片,主要原因是:
- 原生的ImageIO、GIFImageReader可能導致jpg圖片發紅
- gif圖片獲取一幀的時候,可以異步處理
- 可以一次將圖片切出各種比例大小的圖(可異步)
- 可以批處理目錄下的圖片(可異步)
以上就是我選擇ImageMagick中convert命令處理圖片的原因
Mac 安裝
直接使用brew方式安裝就可以了,如果Mac上沒有安裝brew,可以看看brew官網
brew install imagemagick
安裝完成後可以使用convert -version
查看安裝狀態
$ convert -version
Version: ImageMagick 7.0.5-3 Q16 x86_64 2017-03-18 http://www.imagemagick.org
Copyright: © 1999-2017 ImageMagick Studio LLC
License: http://www.imagemagick.org/script/license.php
Features: Cipher DPC HDRI Modules
Delegates (built-in): bzlib freetype jng jpeg ltdl lzma png tiff xml zlib
Windows 安裝
下載
ImageMagick:https://www.imagemagick.org/script/download.php
GraphicsMagick: https://sourceforge.net/projects/graphicsmagick/files/
ImageMagick安裝:
GraphicsMagick安裝:
你會發現,這兩個軟件的安裝界面怎麼這麼像?其實他們是好基友,GraphicsMagick是從ImageMagick5.x的版本遷出的,然後通過部分修改後發展成了現在的分支。
ImageMagick、GraphicsMagick安裝完成後,記住兩個程序的安裝目錄,然後將目錄配置到Windows系統環境變量的Path中。
環境變量配置完成後,新打開一個cmd命令行窗口,輸入:gm -version
命令驗證安裝是否正常。
C:\Users\Administrator>gm -version
GraphicsMagick 1.3.25 2016-09-05 Q16 http://www.GraphicsMagick.org/
Copyright (C) 2002-2016 GraphicsMagick Group.
Additional copyrights and licenses apply to this software.
See http://www.GraphicsMagick.org/www/Copyright.html for details.
Feature Support:
Native Thread Safe yes
Large Files (> 32 bit) yes
Large Memory (> 32 bit) no
BZIP yes
DPS no
FlashPix no
FreeType yes
Ghostscript (Library) no
JBIG yes
JPEG-2000 yes
JPEG yes
Little CMS yes
Loadable Modules yes
OpenMP yes (200203)
PNG yes
TIFF yes
TRIO no
UMEM no
WebP yes
WMF yes
X11 no
XML yes
ZLIB yes
Windows Build Parameters:
MSVC Version: 1500
Processor target: Pentium Pro, Pentium II, and Pentium III
Processor arch: NONE
C:\Users\Administrator>
能夠像上面一樣輸出,就說明在Windows下安裝成功了!
linux 安裝
CentOS安裝
安裝之前建議安裝阿里雲的源 - CentOS安裝阿里雲源
安裝
yum -y install ImageMagick ImageMagick-devel
安裝完成後可以使用convert -version
查看安裝狀態
convert -version
還可以找一張圖設置一下大小
convert -resize 100x100 test1.jpg 100.jpg
下載 GraphicsMagick-1.3.26
請到我的CSDN的下載頁面 http://download.csdn.net/user/chwshuang/uploads 去下載
解壓
xz -d GraphicsMagick-1.3.261.tar.xz
tar -xf GraphicsMagick-1.3.261.tar
進入解壓目錄
cd GraphicsMagick-1.3.26
安裝依賴
yum install -y gcc gcc-c++ make cmake autoconf automake libpng-devel libjpeg-devel libtiff-devel jasper-devel freetype-devel libtool-ltdl libtool-ltdl-devel*
配置環境
./configure '--prefix=/usr/local/GraphicsMagick-1.3.26' '--exec-prefix=/usr/local/GraphicsMagick-1.3.26' '--bindir=/usr/local/GraphicsMagick-1.3.26/bin' '--sbindir=/usr/local/GraphicsMagick-1.3.26/sbin' '--sysconfdir=/usr/local/GraphicsMagick-1.3.26/etc' '--datadir=/usr/local/GraphicsMagick-1.3.26/share' '--includedir=/usr/local/GraphicsMagick-1.3.26/include' '--libdir=/usr/local/GraphicsMagick-1.3.26/lib' '--libexecdir=/usr/local/GraphicsMagick-1.3.26/libexec' '--localstatedir=/usr/local/GraphicsMagick-1.3.26/var' '--sharedstatedir=/usr/local/GraphicsMagick-1.3.26/share/com' '--mandir=/usr/local/GraphicsMagick-1.3.26/share/man' '--infodir=/usr/local/GraphicsMagick-1.3.26/share/info' '--enable-libtool-verbose' '--with-included-ltdl' '--enable-shared' '--disable-static' '--with-modules' '--with-frozenpaths' '--without-perl' '--without-magick-plus-plus' '--with-quantum-depth=8' --enable-symbol-prefix
編譯 & 安裝
make && make install
加入環境變量
vim /etc/profile
...
export GMAGICK_HOME="/usr/local/GraphicsMagick-1.3.26"
export PATH="$GMAGICK_HOME/bin:$PATH"
LD_LIBRARY_PATH=$GMAGICK_HOME/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
export IM4JAVA_TOOLPATH=/usr/local/GraphicsMagick-1.3.26/bin
...
source /etc/profile
測試安裝成果
gm
gm convert -list formats
Ubuntun安裝
直接使用apt-get
命令安裝
sudo apt-get install imagemagick
安裝完成查看一下版本驗證安裝是否正確
convert -version
Version: ImageMagick 6.8.9-9 Q16 x86_64 2017-03-14 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC
Features: DPC Modules OpenMP
Delegates: bzlib cairo djvu fftw fontconfig freetype jbig jng jpeg lcms lqr ltdl lzma openexr pangocairo png rsvg tiff wmf x xml zlib
安裝完成後,可以參考我專欄中的其他文章:
(1)Java圖片處理 - 安裝ImageMagick庫使用convert命令
(2)Java圖片處理 - 創建工具類
(3)Java圖片處理 - 複製
(4)Java圖片處理 - 縮放圖片
(5)Java圖片處理 - gif圖獲取一幀圖片