emf到jpg的转换

时间:2011-02-08 06:54:52

标签: java video-processing

我的目标是将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();
        }
    }
}

当我执行它时,我得到了像

这样的错误
  1. 当我使用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)
    
  2. 当我使用时,`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格式图像转换为其他格式。提前谢谢。

3 个答案:

答案 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();
        }
    }
}