在我的一个项目中,我使用 JUNG2 来可视化一个非常大的多父层次结构图,显示在一个小程序中。我需要将图形的全部/部分导出为高分辨率静止图像,因为屏幕截图在打印时看起来很可怕(尤其是在图形被缩小的情况下)。
我目前使用的代码如下:
public void writeToDisk(File saveToFolder, String filename) {
//Dimension loDims = getGraphLayout().getSize();
Dimension vsDims = getSize();
int width = vsDims.width;
int height = vsDims.height;
Color bg = getBackground();
BufferedImage im = new BufferedImage(width,height,BufferedImage.TYPE_INT_BGR);
Graphics2D graphics = im.createGraphics();
graphics.setColor(bg);
graphics.fillRect(0,0, width, height);
paintComponent(graphics);
try{
ImageIO.write(im,"png",new File(saveToFolder,filename));
}catch(Exception e){
e.printStackTrace();
}
}
这会创建分辨率不是特别高的 PNG 图像。所以我的问题如下:
- 是否可以将 PNG 导出分辨率提高到 300 dpi?
- 是否可以轻松地将图形或任何摆动组件导出为基于矢量的格式,例如 EPS、PDF 或 SVG?我找到了几个库(VectorGraphics2D,FreeHEP)用于在 Java 中管理基于矢量的图像,但是我不确定使用它们是否意味着我必须“重新绘制”图中的每个顶点和边。这显然不是很可取...
- 还有其他我可能错过的选择吗?
提前致谢,