项目场景:
提示:Windows:
我用的ImageMagick版本是ImageMagick-7.0.8-12-Q16-x64-dll.exe。
最新下载地址
笔者用6.x版本没有成功,使用最新版没有出现问题,请注意:
https://download.imagemagick.org/script/download.php
简单测试:
ConvertCmd cmd = new ConvertCmd();
// 设置imageMagick安装地址(linux系统下无需指定)
cmd.setSearchPath("E:\\Program Files\\ImageMagick-7.1.1-Q16");
IMOperation op = new IMOperation();
op.addImage("C:\\heifImg\\img\\1.HEIC");
op.addImage("C:\\heifImg\\img\\1.jpg");
try {
cmd.run(op);
} catch (IOException | InterruptedException | IM4JavaException e) {
e.printStackTrace();
}
实现:
Im4java的当前最新版本是1.4.0,支持Maven配置
新建Maven项目,在pom中添加
<dependency>
<groupId>org.im4java</groupId>
<artifactId>im4java</artifactId>
<version>1.4.0</version>
</dependency>
工具类:
package imagemagick;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import javax.imageio.ImageIO;
import org.im4java.core.CompositeCmd;
import org.im4java.core.ConvertCmd;
import org.im4java.core.IMOperation;
import org.im4java.core.IdentifyCmd;
import org.im4java.core.ImageCommand;
import org.im4java.process.ArrayListOutputConsumer;
public class Im4JavaUtils {
private static final String IMAGE_MAGICK_PATH = "D:\\ImageMagick-7.0.8-Q16";
enum CommandType{
convert("转换处理"),composite("图片合成"),identify("图片信息"),;
private String name;
CommandType(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
private static ImageCommand getImageComm