私のプロジェクトの1つでは、JUNG2を使用してアプレットに表示された非常に大きな複数の親の階層グラフを視覚化しています。私はグラフの全体/一部を高解像度の静止画にエクスポートする必要があります。なぜなら、スクリーンショットは印刷時には(特にグラフがズームアウトされていると)見えないからです。次のように高画質画像へのJUNGグラフのエクスポート
私は現在使用のコードは次のとおり
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エクスポートの解像度を300dpiに上げることは可能ですか?
- EPSやPDF、SVGなどのベクトルベースの形式にグラフやそのスイングコンポーネントをエクスポートすることはできますか?私はベクトルベースの画像をJavaで管理するためにいくつかのライブラリ(VectorGraphics2D、FreeHEP)を見つけましたが、それらを使用するとグラフの各頂点とエッジを「再描画」する必要があるかどうかわかりません。それは明らかにあまり望ましくありません...
- 私が逃したかもしれない他の選択肢はありますか?事前に
おかげで、
たぶん、あなたはあなたの結果のラスタに変換することができます/ビットマップイメージファイルを、後でAutotrace [http://autotrace.sourceforge.net/](http://autotrace.sourceforge.net/)のようなサードパーティライブラリを使用してベクターイメージファイルに変換します – ecle
この問題を解決できましたか?次の回答のいずれも実際には動作していないので、@posdef – SacJn
@SacJn私が以下に投稿した**答えはその時に働いたのですが、ライブラリがその解決策を破るように変更されたかどうかは言えません。私はもうこのプロジェクトに取り組んでいません。#orphanproject #programminginacademia :) – posdef