6

私は自分の質問に対する解決策を探し回っていますが、私が望んでいるものは何もありません。

私がやりたいことは、JUNG グラフ全体 (カスタムの頂点とエッジのレンダリングを使用) を画像 (PNG または JPEG) に保存することです。VisualizationViewer を BufferedImage に保存すると、可視部分のみが取得されます。グラフ全体を保存したいので、それはオプションではありません。

グラフ全体を画像にレンダリングする方法について誰か考えがありますか?

前もって感謝します!

4

4 に答える 4

1

少し前に私がまとめた StandardPrint クラスを見たいと思うかもしれません:

http://tus.svn.sourceforge.net/viewvc/tus/tjacobs/print/

preview() を使用して、任意のコンポーネント (または SpecialPrint を使用して何でも) を画像にレンダリングできます。

于 2012-05-02T20:05:13.957 に答える
1

dylan202 が提案した方法で画像をキャプチャした私の経験は、画像の品質が基準に達していないことでした。プレゼンテーション用の画像が必要だったので。

Jung ネットワークの高品質の画像を取得する別の方法は、 FreeHEP のVectorGraphicsライブラリを使用することです。

このライブラリを使用して、pdf ファイルで画像を生成しました。その後、pdf からプレゼンテーションへの画像のスナップショットを撮りました。

JPanel panel = new JPanel ();
panel.setLayout(new FlowLayout());
panel.setBackground(Color.WHITE);
panel.add(vv);

Properties p = new Properties(); 
p.setProperty("PageSize","A4"); 

// vv is the VirtualizationViewer

VectorGraphics g = new PDFGraphics2D(new File("Network.pdf"), vv);                  

g.setProperties(p); 
g.startExport(); 
panel.print(g); 
g.endExport();

JPEG やその他の種類のファイルを生成することもできます。たとえば、SVG ファイルを生成するには、1 行だけ変更する必要があります。

VectorGraphics g = new SVGGraphics2D(new File("Network.svg"), vv); 

詳細については、マニュアルを参照してください。

PDFファイルからスナップショットを拡大 PDFファイルからスナップショットを拡大

于 2014-10-30T13:03:30.017 に答える
0
BufferedImage image = (BufferedImage) vis.getImage(
new Point2D.Double(graph.getGraphLayout().getSize().getWidth() / 2,
graph.getGraphLayout().getSize().getHeight() / 2),
new Dimension(graph.getGraphLayout().getSize()));

Graphクラスの「getGraphLayout」という名前のメソッドはありませんが、視覚化ビューアです。

于 2012-06-01T01:55:54.643 に答える