【发布时间】:2020-07-01 23:08:44
【问题描述】:
我需要使用完整的 java 代码将 emf、wmf 文件格式转换为 png 或 jpeg(因为某些浏览器不支持这些格式)..谁能指导我..
提前致谢
【问题讨论】:
-
游戏迟到了......但另请参阅Convert WMF to PNG/BMP/JPG
标签: java image-processing
我需要使用完整的 java 代码将 emf、wmf 文件格式转换为 png 或 jpeg(因为某些浏览器不支持这些格式)..谁能指导我..
提前致谢
【问题讨论】:
标签: java image-processing
最快的方法可能是使用Imagemagick。它支持support EMF 和 WMF 格式。我已经使用 im4java(Imagemagick 的 Java 接口)成功使用了 Java 中的 Imagemagick。
您也可以查看 Jmagick,这是 Imagemagick 的另一个 Java 接口。我发现这个使用起来更复杂。
【讨论】:
其他选项:FreeHEP 和 Apache Batik。不过,我还没有尝试过。
【讨论】:
快速调查显示以下命令行实用程序:http://www.verypdf.com/htmltools/html-converter/emf-to-bmp.html
您可以从 java 程序中运行它。不幸的是,我还没有看到纯 Java 解决方案。很高兴知道是否存在。
【讨论】:
纯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 中正确转换(返回黑色图像)。
【讨论】:
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。 我花了很多时间来弄清楚。我希望它可以帮助任何需要这样的人。 祝你好运。
【讨论】: