需要使用Java将EMF转换为jpeg、png文件格式

3
我需要使用完整的Java代码将emf、wmf文件格式转换为png或jpeg(因为某些浏览器不支持这些格式)。能否有人指导我如何操作?
提前感谢。

虽然有些晚了,但也可以参考将WMF转换为PNG/BMP/JPG - kiwiwings
5个回答

4
最快的方式可能是使用Imagemagick。它支持EMF和WMF格式。我已经成功地使用im4java从Java中使用Imagemagick,这是一个Imagemagick的Java接口。
或者,您可以查看Jmagick,另一个Imagemagick的Java接口。我发现这个更难使用。

1
好的答案!我忘记了ImageMagic。我用它来制作动画GIF。虽然它是编译成本地代码的命令行实用程序,但你可以找到它在不同平台上的编译版本,因此它几乎是“跨平台”的。 - AlexR
3
根据官方ImageMagick文档,只有在Windows系统下才支持emf格式。 - Arnaud Bouchez

1

@vignesh - 他们声称支持它们,请查看<http://java.freehep.org/vectorgraphics/Manual.html#Vector Formats (Alphabetical)>和http://xmlgraphics.apache.org/batik/javadoc/org/apache/batik/transcoder/wmf/tosvg/package-summary.html。 - Adam Schmideg

0

0

纯Java解决方案是TwelveMonkeys,它支持使用Batik读取WMF文件。

Batik只能处理带有Aldus Placable Header的旧WMF格式,无法解析其他类型(例如最近在MS Office元数据中)。请参阅WMF格式:http://wvware.sourceforge.net/caolan/ora-wmf.html

提供了一个解决方法:https://github.com/haraldk/TwelveMonkeys/issues/35,即用“伪造”的Aldus Placable Header包装最新的WMF,然后传递给Batik。

否则,ImageMagick(IM)是一个具有安装程序的简单解决方案。顺便说一下,即使使用最新的IM,在Linux中也无法正确转换WMF(会返回黑色图像)。


0
import org.im4java.core.ConvertCmd;
import org.im4java.core.IM4JavaException;
import org.im4java.core.IMOperation;
import org.im4java.process.ProcessStarter;

import java.io.File;
import java.io.IOException;

public class converter {
    public static void main(String arg[]) throws InterruptedException, IOException, IM4JavaException {
        String myPath="C:\\Program Files\\ImageMagick-7.0.10-Q16-HDRI";
        ProcessStarter.setGlobalSearchPath(myPath);

        String input="C:\\Users\\Bagra\\Desktop\\emf files\\two.emf";
        String output="C:\\Users\\Bagra\\Desktop\\emf files\\out2.jpg";

        convert(input,output);
    }
    public static void convert(String input,String output)
    {
        try{
            IMOperation img=new IMOperation();
            img.addImage();
            img.addImage();
            ConvertCmd convert=new ConvertCmd()`enter code here`;
            convert.run(img,new Object[]{input,output});
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }


}

首先,你需要前往https://imagemagick.org/script/download.php下载ImageMagick-7.0.10-22-Q16-HDRI-x64-dll.exe(如果你使用的是Windows系统)。 但是,在安装选项中一定要小心,选择安装传统实用程序(例如convert)。(这非常重要) 安装完成后,只需使用Java创建一个简单的控制台应用程序即可。

    String myPath="C:\\Program Files\\ImageMagick-7.0.10-Q16-HDRI";
    ProcessStarter.setGlobalSearchPath(myPath); 

你需要将搜索路径设置为已安装的目录。 然后选择一个emf文件和不存在的jpg路径。 更多细节可以参考http://im4java.sourceforge.net/docs/dev-guide.html。 我花了很多时间才弄清楚。希望能帮助到需要这样东西的人。 祝好运。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接