我正在使用http://sourceforge.net/projects/jlibeps/库。
我有一个已经被绘制到的现有Graphics2D对象,然后想要从Graphics2D对象创建一个新的EpsGraphics2D对象。
这可能吗,或者关于如何做到这一点的任何建议?
jlibeps作者提供了此示例,但我无法理解paint(g)
行如何完成此操作:
//If you want to paint a Graphics2D in an EPS file, you can do that:
FileOutputStream finalImage = new FileOutputStream(file);
EpsGraphics2D g = new EpsGraphics2D("Title", finalImage, 0, 0, 500, 500);
paint(g);
g.flush();
g.close();
finalImage.close();
最佳答案
通常,拥有一个Graphics2D
对象不会帮助您,因为它使您可以绘制某种介质,但不能读取该介质当前呈现的内容,更不用说绘制当前内容所使用的指令。
相反,必须像将EpsGraphics2D
对象用于屏幕渲染一样,将Graphics2D
对象输入管道。通常,您要绘制某些组件的内容。可以通过调用其paint
方法来完成。因此,通过使用构造的eps图形对象调用该paint
方法,可以使所有绘画指令进入eps文件。这就是手册中的paint(g)
行所指的内容。
换句话说:您不需要现有的Graphics2D
对象,而该对象已神奇地变成了EpsGraphics2D
对象。取而代之的是,您需要一连串的方法调用,这些方法调用对Graphics2D
对象有用,即向该对象渲染一些内容。然后,可以通过将EpsGraphics2D
对象(这是Graphics2D
对象的特例,因此是Graphics
对象的特例)传递给该代码的最外层调用,从而重新使用该代码来生成eps文件。 。
关于java - 从Graphics2D创建EpsGraphics2D,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12857929/