【问题标题】:Need to convert EMF to jpeg,png file formats using java需要使用 java 将 EMF 转换为 jpeg、png 文件格式
【发布时间】:2020-07-01 23:08:44
【问题描述】:

我需要使用完整的 java 代码将 emf、wmf 文件格式转换为 png 或 jpeg(因为某些浏览器不支持这些格式)..谁能指导我..

提前致谢

【问题讨论】:

标签: java image-processing


【解决方案1】:

最快的方法可能是使用Imagemagick。它支持support EMF 和 WMF 格式。我已经使用 im4java(Imagemagick 的 Java 接口)成功使用了 Java 中的 Imagemagick。

您也可以查看 Jmagick,这是 Imagemagick 的另一个 Java 接口。我发现这个使用起来更复杂。

【讨论】:

  • 好答案!我忘记了imagemagic。我用它来制作GIF动画。虽然它是编译为本机代码的命令行实用程序,但你可以找到它针对不同平台的编译,因此它几乎是“跨平台”。
  • ... emf 仅在 Windows 下受支持,如果我了解 the official ImageMagick documentation
【解决方案2】:

其他选项:FreeHEPApache Batik。不过,我还没有尝试过。

【讨论】:

  • @vignesh - 他们声称支持他们,请参阅 java.freehep.org/vectorgraphics/Manual.html#Vector Formats (Alphabetical)> 和 xmlgraphics.apache.org/batik/javadoc/org/apache/batik/…>
【解决方案3】:

快速调查显示以下命令行实用程序:http://www.verypdf.com/htmltools/html-converter/emf-to-bmp.html

您可以从 java 程序中运行它。不幸的是,我还没有看到纯 Java 解决方案。很高兴知道是否存在。

【讨论】:

    【解决方案4】:

    纯java解决方案是TwelveMonkeys with 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,WMF 也无法在 Linux 中正确转换(返回黑色图像)。

    【讨论】:

      【解决方案5】:
      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();
              }
          }
      
      
      }
      

      如果您在 Windows 上,您要做的第一件事是转到 https://imagemagick.org/script/download.php 并下载 ImageMagick-7.0.10-22-Q16-HDRI-x64-dll.exe。 但是,当您看到安装选项时,请仔细选择安装遗留实用程序(例如转换)。(这非常重要)。 安装后,只需使用 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。 我花了很多时间来弄清楚。我希望它可以帮助任何需要这样的人。 祝你好运。

      【讨论】:

        猜你喜欢
        • 2012-12-22
        • 2012-12-15
        • 1970-01-01
        • 2019-10-17
        • 1970-01-01
        • 2017-09-01
        • 1970-01-01
        • 2011-01-18
        • 2010-10-02
        相关资源
        最近更新 更多