import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.tecno.DDEX.frame.ContentObject;
import com.tecno.DDEX.test.service.Main;
public class MagickUtil {
private final static Logger logger = LoggerFactory.getLogger(Main.class);
public static void tiffToPng(String tiffFilePath, String toFilePath) {
Process process = null;
BufferedReader input = null;
String[] cmd = { ContentObject.MAGICK_PATH, tiffFilePath, toFilePath };
try {
process = Runtime.getRuntime().exec(cmd);
printMessage(process.getInputStream());
printMessage(process.getErrorStream());
int value = process.waitFor();
// 记录执行命令是否成功
if (value == 0) {
logger.info("magick exec success:" + cmd);
} else {
logger.error("magick exec failure:" + cmd);
}
} catch (Exception e) {
e.printStackTrace();
logger.error("magick exec failure:", e);
} finally {
if (input != null) {
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
* 打印命令执行的结果
*
* @param input
*/
private static void printMessage(final InputStream input) {
new Thread(new Runnable() {
public void run() {
InputStreamReader reader = new InputStreamReader(input);
BufferedReader bf = new BufferedReader(reader);
String line = null;
try {
while ((line = bf.readLine()) != null) {
logger.info("ImageMagick:" + line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
public static void main(String[] args) {
tiffToPng("E:\\a.tiff", "E:\\c.jpg");
}
}