dyl*_*202 6 java image jung graph-visualization
我一直在寻找我的问题的解决方案,但没有什么是我想要的.
我想要做的是将整个JUNG图(使用自定义顶点和边渲染)保存到图像(PNG或JPEG).当我将VisualizationViewer保存到BufferedImage时,它只占用可见部分.我想保存整个图表,所以这不是一个选项.
有没有人知道如何将整个图形渲染成图像?
提前致谢!
dyl*_*202 13
我终于找到了我的问题的解决方案,使用了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
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3585 次 |
| 最近记录: |