im4java的jar包可以在maven庫中找到。
<dependency>
<groupId>org.im4java</groupId>
<artifactId>im4java</artifactId>
<version>1.4.0</version>
</dependency>
將ImageMagick或者GraphicsMagick安裝好后,再配好環境變量。
樣例代碼:
import org.im4java.core.ConvertCmd;
import org.im4java.core.IMOperation;
public class Test {
public static void main(String[] args) {
try {
zoomImage(1000,800,"F:/u02/origin/20141215/loginbigbg.jpg","F:/u02/origin/20141215/loginbigbg_new.jpg");
} catch (Exception e) {
e.printStackTrace();
}
}
public static void zoomImage(Integer width, Integer height, String srcPath, String newPath) throws Exception {
IMOperation op = new IMOperation();
op.addImage(srcPath);
if(width == null){//根據高度縮放圖片
op.resize(null, height);
}else if(height == null){//根據寬度縮放圖片
op.resize(width, null);
}else {
op.resize(width, height);
}
op.addImage(newPath);
//這里不加參數或者參數為false是使用ImageMagick,true是使用GraphicsMagick
ConvertCmd convert = new ConvertCmd();
// convert.setSearchPath("g:/tool/graphicsmagick-1.3.20-q16");
convert.setSearchPath("G:/tool/ImageMagick-6.9.0-Q16");
convert.run(op);
}
}
其中setSearchPath在Windows環境下是需要設置的。
ConvertCmd convert = new ConvertCmd();
這一句,如果只安裝了ImageMagick,但是定義時寫成了new ConvertCmd(true)是,會報找不到“gm”的錯。
org.im4java.core.CommandException: java.io.FileNotFoundException: gm at org.im4java.core.ImageCommand.run(ImageCommand.java:219) at com.trs.rk.test.Test.zoomImage(Test.java:31) at com.trs.rk.test.Test.main(Test.java:10)
同理,如果只裝了GraphicsMagick,但是new ConvertCmd(false)或者無參數,會報找不到convert的錯。
org.im4java.core.CommandException: java.io.FileNotFoundException: convert at org.im4java.core.ImageCommand.run(ImageCommand.java:219) at com.trs.rk.test.Test.zoomImage(Test.java:31) at com.trs.rk.test.Test.main(Test.java:10)
轉自:mzglzzc的專欄
