【发布时间】:2013-02-10 23:42:41
【问题描述】:
我下载了用于处理 EPS 文件的库 here。
并编写了一些代码来解析EPS文件:
EPSImageReaderSPI spi = new EPSImageReaderSPI();
EPSImageReader eps = new EPSImageReader(spi);
File file = new File("file.eps");
InputStream in = null;
try {
in = new FileInputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
ImageInputStream iis = null;
iis = ImageIO.createImageInputStream(in);
eps.setInput(iis);
eps.getHeight(0);
我的代码崩溃并说:
线程“主”javax.imageio.IIOException 中的异常:不支持数据类型 -1 在 epsLib.EPSImageReader.readHeader(EPSImageReader.java:307) 在 epsLib.EPSImageReader.getHeight(EPSImageReader.java:148) 在 Main.main(Main.java:39) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
你能帮帮我吗?
更新:
当我尝试安装 jmagick,但是当我运行命令时:
./configure --with-java-home=/System/Library/Frameworks/JavaVM.framework/Versions/Current --with-magick-home=/usr/local/Cellar/imagemagick/6.8.0-10 --with-magick-inc-dir=/usr/local/Cellar/imagemagick/6.8.0-10/include
得到这个错误:
正在检查 MagickCore-config... /usr/local/Cellar/imagemagick/6.8.0-10/bin/MagickCore-config /usr/local/Cellar/imagemagick/6.8.0-10/bin/MagickCore-config:第 50 行:pkg-config:找不到命令 /usr/local/Cellar/imagemagick/6.8.0-10/bin/MagickCore-config:第 53 行:pkg-config:找不到命令 /usr/local/Cellar/imagemagick/6.8.0-10/bin/MagickCore-config:第 47 行:pkg-config:找不到命令 检查 magick/api.h 的可用性...否 检查 magick/api.h 的存在...否 检查magick/api.h ...不 配置:错误:找不到 ImageMagick 头文件
更新:
我修好了!只需将命令更改为:
./configure --with-java-home=/System/Library/Frameworks/JavaVM.framework/Versions/Current --with-magick-home=/usr/local/Cellar/imagemagick/6.8.0-10 --with-magick-inc-dir=/usr/local/Cellar/imagemagick/6.8.0-10/include/ImageMagick/
然后我尝试了:
make all
并得到错误:
make1: 进入目录
/Users/olegsuzaev/jmagick-6.4.0/src'make[2]: Entering directory/Users/olegsuzaev/jmagick-6.4.0/src/magick'../../Make.rules:175: * 缺少分隔符。停止。 make[2]: 离开目录/Users/olegsuzaev/jmagick-6.4.0/src/magick' make[1]: *** [dir_target] Error 2 make[1]: Leaving directory/Users/olegsuzaev/jmagick-6.4.0/src' make: * [dir_target] 错误 2
有人可以帮忙解决新的错误吗?
【问题讨论】:
-
很高兴你拿走了我的 EPS 阅读器,不幸的是它目前不支持矢量 EPS 文件。您的 EPS 是否包含矢量数据?
-
嗨!是的,它是包含的。遗憾的是该库不支持矢量 EPS 文件。你知道其他可以帮助我的图书馆吗?非常感谢)
-
对不起,我不知道任何 Java 库,我会像 Amorgos 所说的那样,JMagick。我开发这个库正是因为没有人。目前我不需要矢量部分。
-
在你的库中添加矢量部分难吗?
-
当然,它本身就是一个项目。这里有一些关于 EPS 文件如何工作的信息:fileformat.info/format/eps/egff.htm。要解析矢量,您需要阅读和解释所有矢量命令。示例: /s /stroke ld /f /fill ld /m /moveto ld /l /lineto ld /c /curveto ld /rgb