我的目标是将emf,wmf文件格式转换为其他图像文件格式。
我包含了image4java jar并试图将我的emf文件转换为其他格式,如jpg,png ..使用以下代码:
import org.im4java.core.ConvertCmd;
import org.im4java.core.IMOperation;
import java.io.File;
public class im4java {
public static void main(String arg[])
{
File input=new File("src/image.emf");
File output=new File("src/output.jpg");
convertemf2png(input,output);
}
public static void convertemf2png(File input,File output)
{
try{
IMOperation img=new IMOperation();
img.addImage();
img.addImage();
ConvertCmd convert=new ConvertCmd();
convert.run(img,new Object[]{input,output});
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
当我执行它时,我得到了像
这样的错误当我使用convert.run(img,new Object[]{input,output});
时我得到了
java.lang.IllegalArgumentException: java.io.File is an unsupported image-type
at org.im4java.core.ImageCommand.resolveImages(ImageCommand.java:289)
at org.im4java.core.ImageCommand.prepareArguments(ImageCommand.java:189)
at org.im4java.core.ImageCommand.run(ImageCommand.java:208)
at im4java.convertemf2png(im4java.java:27)
at im4java.main(im4java.java:18)
当我使用时,`convert.run(img,new Object [] {input.getAbsolutePath(),output.getAbsolutePath()}); 我有,
org.im4java.core.CommandException: org.im4java.core.CommandException: Invalid Parameter - C:\vignesh\im4java\src\output.jpg
at org.im4java.core.ImageCommand.run(ImageCommand.java:215)
at im4java.convertemf2png(im4java.java:27)
at im4java.main(im4java.java:18)
Caused by: org.im4java.core.CommandException: Invalid Parameter - C:\vignesh\im4java\src\output.jpg
at org.im4java.core.ImageCommand.finished(ImageCommand.java:247)
at org.im4java.process.ProcessStarter.run(ProcessStarter.java:314)
at org.im4java.core.ImageCommand.run(ImageCommand.java:211)
任何人请帮助我解决此问题或任何其他方式将emf格式图像转换为其他格式。提前谢谢。
答案 0 :(得分:4)
您需要设置ImageMagic可执行文件的路径 - 您无意中调用了a windows program named convert
答案 1 :(得分:3)
在使用im4java命令之前,您还需要添加这些行:
String myPath="PATH\TO\ImageMagick";
ProcessStarter.setGlobalSearchPath(myPath);
答案 2 :(得分:0)
将图像放入字符串中。 确保将环境变量IM4JAVA_TOOLPATH设置为imagemagick路径。
import org.im4java.core.ConvertCmd;
import org.im4java.core.IMOperation;
public class im4java {
public static void main(String arg[])
{
String input = "src/image.emf";
String output = "src/output.jpg";
convertemf2png(input,output);
}
public static void convertemf2png(String input,String output)
{
try{
IMOperation img=new IMOperation();
img.addImage();
img.addImage();
ConvertCmd convert=new ConvertCmd();
convert.run(img,input,output);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}