当前位置: 首页 > 面试题库 >

JUNG:将整个图形(不仅是可见部分)另存为图像

鲁涵映
2023-03-14
问题内容

我一直在寻找解决问题的方法,但是没有任何事情能满足我的需求。

我要做的是将整个JUNG图(带有自定义顶点和边缘渲染)保存到图像(PNG或JPEG)中。当我将VisualizationViewer保存到BufferedImage时,它只包含可见部分。我想保存整个图,所以这不是一个选择。

有人对如何将整个图形呈现为图像有想法吗?

提前致谢!


问题答案:

我终于使用找到了解决我问题的方法VisualizationImageServer。这是一个如何为整个JUNG图创建图像的示例,供其他苦苦挣扎的人使用:

import edu.uci.ics.jung.visualization.VisualizationImageServer;

...

// Create the VisualizationImageServer
// vv is the VisualizationViewer containing my graph
VisualizationImageServer<Node, Edge> vis =
    new VisualizationImageServer<Node, Edge>(vv.getGraphLayout(),
        vv.getGraphLayout().getSize());

// Configure the VisualizationImageServer the same way
// you did your VisualizationViewer. In my case e.g.

vis.setBackground(Color.WHITE);
vis.getRenderContext().setEdgeLabelTransformer(new ToStringLabeller<Edge>());
vis.getRenderContext().setEdgeShapeTransformer(new EdgeShape.Line<Node, Edge>());
vis.getRenderContext().setVertexLabelTransformer(new ToStringLabeller<Node>());
vis.getRenderer().getVertexLabelRenderer()
    .setPosition(Renderer.VertexLabel.Position.CNTR);

// Create the buffered image
BufferedImage image = (BufferedImage) vis.getImage(
    new Point2D.Double(vv.getGraphLayout().getSize().getWidth() / 2,
    vv.getGraphLayout().getSize().getHeight() / 2),
    new Dimension(vv.getGraphLayout().getSize()));

// Write image to a png file
File outputfile = new File("graph.png");

try {
    ImageIO.write(image, "png", outputfile);
} catch (IOException e) {
    // Exception handling
}


 类似资料:
  • 这可能是几乎每个使用matplotlib的人都会遇到的问题。如果您生成一个图形——它通常包含轴标签和图例——并使用默认设置保存它,您将得到一个裁剪后的图像。 演示代码: (多亏了stackoverflow),我们知道很少的变通方法,但每种方法都有自己的警告… 变通方法#1:从matplotlib中:使用选项。 它适用于简单的图形。< br >但是,根据我的经验,对于更复杂的多面板图形,这不是一个可

  • 问题内容: 在我的一个项目中,我使用JUNG2可视化显示在applet中的非常大的多父级层次结构图。我需要将图形的全部/部分导出为高分辨率的静止图像,因为屏幕截图在打印时看起来很丑陋(特别是如果图形已经缩小)。 我当前使用的代码如下: 这会创建不是特别高分辨率的PNG图像。所以我的问题如下: 是否可以将PNG导出分辨率提高到300 dpi? 是否可以将图形或与此相关的任何摆动组件导出为基于矢量的格

  • 问题内容: 我正在使用SQLite,但无法将图像保存到数据库。这是我的代码: 这是我得到的错误: 我正在使用以下jar:sqlitejdbc-v056.jar。 有任何想法吗?谢谢 问题答案: 您正在使用的SQLite JDBC实现未实现(因此,确切 的说法是SQLite JDBC驱动程序未实现 错误消息)。 您需要改用该方法。

  • 问题内容: 我有一个Numpy数组类型的矩阵。如何将其作为映像写入磁盘?任何格式都可以使用(png,jpeg,bmp …)。一个重要的约束是不存在PIL。 问题答案: 你可以使用PyPNG。这是一个纯Python(无依赖性)开源PNG编码器/解码器,它支持将NumPy数组写为图像。

  • 问题内容: 这是Highchart项目符号图表的示例http://jsfiddle.net/jlbriggs/LdHYt/1/ 如何将其转换为列项目符号图表? 问题答案: 这是您要找的东西吗?小提琴