6. グラフを画像ファイルに出力する方法2006.02.27 株式会社四次元データ 鈴木 圭
JUNG 6章 グラフを画像ファイルに出力する方法
この章では、JUNG で描画したグラフを JPEG や PNG などの形式でファイルに保存する方法について解説します。それに加えて Renderer を自作する方法についても説明します。 グラフの画像をファイルに出力する方法は、GUI ベースのアプリケーションの機能として画像出力を行う場合と、GUI を持たないアプリケーションで画像出力を行う場合の2通りあります。また、GUI を持たないアプリケーションの場合、現状では Renderer を自作する必要があります。 6.1. GUI ベース・アプリケーションでの画像出力GUI ベースのアプリケーションでグラフの画像をファイルに出力する方法は、java.awt.Component に描画されている内容をキャプチャする方法と同じです。GUI ベースということはグラフの表示に VisualizationViewer を使うことになると思います。VisualizationViewer は java.awt.Component を継承しているので、void paint(Graphics) メソッドを使って任意の Graphics オブジェクトに描画することができます。 以下に、VisualizationViewer に描画されているグラフを JPEG ファイルとして出力するメソッドを示します。 /**
*
* VisualizationViewer に描画されている内容を JPEG ファイルとして保存する.
*
* @param fileName 保存ファイル名.
* @param viewer 対象の VisualizationViewer.
*
*/
private static void saveGraphToFile(String fileName,
VisualizationViewer viewer) {
int width = viewer.getWidth();
int height = viewer.getHeight();
BufferedImage image = new BufferedImage(width,
height,
BufferedImage.TYPE_INT_BGR);
// グラフを描画.
Graphics graphics = image.createGraphics();
viewer.paint(graphics);
graphics.dispose();
// JPEG 形式で保存.
try {
ImageIO.write(image, "jpeg", new File(fileName));
} catch (IOException exception) {
exception.printStackTrace();
}
}
全体の流れは、まず VisualizationViewer と同じサイズの BufferedImage を作成します。次に、BufferedImage から Graphics オブジェクトを取得し、VisualizationViewer の paint(Graphics) メソッドでグラフを描画します。最後に BufferedImage をファイルに出力しています。 このサンプルでは保存形式を JPEG として説明しましたが、ファイルの保存には Java Image I/O API(javax.imageio パッケージ)を使用しているので、Java Image I/O API で対応している形式(現状では JPEG, PNG, BMP, WBMP)から好きな形式で出力可能です。(Java Image I/O API についての詳しい情報は http://java.sun.com/j2se/1.4/ja/docs/ja/guide/imageio/index.html をご覧ください。) |
![]()
![]()
|