詳細如下:
在windows上安裝ImageMagick:
download 地址:http://ftp.icm.edu.pl/pub/unix/graphics/GraphicsMagick/windows/
關於Q8,Q16,Q32的說明:(建議使用8,現在數碼相機照的相片,每一種顏色就是8位深,3種顏色就是24位,所以選8)
支持的參數有3種,分別是 8, 16, or 32。默認值是16。
Q8表示: 8-bits per pixel quantum
Q16表示:16-bits per pixel quantum
Q32表示:32-bits per pixel quantum
使用16-bit per pixel quantums在處理圖片時比8-bit慢15%至50%,並須要更多的內存。
處理一張1024x768像素的圖片8-bit要使用3.6M內存,16-bit要使用7.2M內存。計算方法是: (5 * Quantum Depth * Rows * Columns) / 8
配置 環境變量加入PATH:E:\Program Files\GraphicsMagick-1.3.18-Q8(個人習慣放在E盤)
二. Linux下的安裝與配置(下載時請注意 有32位系統包,有64位系統包,根據情況選擇。這裏是centos 64位的)
1、先查看所需的包是否安裝
rpm -q libjpeg libjpeg-devel libpng libpng-devel freetype freetype- devel libtiff
先把一些圖片補丁包安裝。
download地址:http://sourceforge.net/projects/graphicsmagick/files/graphicsmagick/1.3.18/GraphicsMagick-1.3.18.tar.gz/download
解壓tar zvxf GraphicsMagick-1.3.18.tar.gz
cd GraphicsMagick-1.3.18
./configure --prefix=/usr/local/GraphicsMagick --with-quantum-depth=8 --enable-share
下載 im4java
downlaod 地址:http://sourceforge.net/projects/im4java/?source=directory
im4java的思路是通過線程或者進程執行graphicsmagick的命令,它的api只是爲了能生成命令,而不是調用graphicsmagick的庫。
我使用的最新的jar :im4java-1.4.0-1.5.jar
測試代碼如下:
IM4JAVA是同時支持ImageMagick和GraphicsMagick的,這裏是bool值,如果爲true則使用GM,如果爲false支持IM。
- /**
- *
- * @param picPath 圖片路徑
- * @param drawPicPath draw後的路徑
- * @param width draw後的寬度
- * @param height draw後的高度
- * @throws IOException
- * @throws InterruptedException
- * @throws IM4JavaException
- */
- public static void drawImg(String picPath,String drawPicPath,int width, int height) throws IOException, InterruptedException, IM4JavaException{
- IMOperation op = new IMOperation();
- op.addImage();
- op.resize(width, height);
- op.font("Arial").fill("red").draw("text 100,100 www.taobao.com");
- op.quality(85d);
- op.addImage();
- //IM4JAVA是同時支持ImageMagick和GraphicsMagick的,如果爲true則使用GM,如果爲false支持IM。
- ConvertCmd cmd = new ConvertCmd(true);
- String osName = System.getProperty("os.name").toLowerCase();
- if(osName.indexOf("win")>=0) { //linux下不要設置此值,不然會報錯
- cmd.setSearchPath("E://Program Files//GraphicsMagick-1.3.18-Q8");
- }
- cmd.setErrorConsumer(StandardStream.STDERR);
- cmd.run(op, picPath , drawPicPath);
- }
- /**
- *
- * @param args
- */
- public static void main(String args[]){
- try {
- drawImg("D://tester.jpg", "D://testerTwo.jpg", 300,400);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }