倭マン's BLOG

くだらない日々の日記書いてます。 たまにプログラミング関連の記事書いてます。 書いてます。

チャートを PNG, JPEG ファイルとして出力する

JFreeChart で構築したチャートを画像ファイルとして保存したい場合は、org.jfree.chart.ChartUtilities クラスの saveChartAsPNG(), saveChartAsJPEG() メソッド (static) を用います。

使い方は簡単。

import org.jfree.chart.ChartUtilities;
...

static void saveChart(String fileName, JFreeChart chart, int width, int height)throws IOException{
    File file = new File(fileName);
    ChartUtilities.saveChartAsPNG(file, chart, width, height);    // JPEG ファイルの場合は saveChartAsJPEG
}

他にもオーバーロードされたメソッドがありますが、それらは JavaDoc 見てください。

幅 (width) と高さ (height) を指定するのが面倒な場合は、org.jfree.chart.ChartPanel を用いると楽ちん(ちょっと邪道っぽいけど)。

import org.jfree.chart.ChartUtilities;
import org.jfree.chart.ChartPanel
...

static void saveChart(String fileName, JFreeChart chart)throws IOException{
    ChartPanel panel = new ChartPanel(chart);
    int width = panel.getWidth();
    int height = panel.getHeight();
    ChartUtilities.saveChartAsPNG(new File(filename), chart, width, height);
}

ちなみに、ファイルではなく OutputStream に書き出したい場合は org.jfree.chart.encoders.EncoderUtil クラスの writeBufferedImage() メソッドを使うと良いようです(参考)。 この場合は PNG, JPEG に加えて GIF 形式でも出力できるようです。

Javaによる画像処理プログラミング (I・O BOOKS)

Javaによる画像処理プログラミング (I・O BOOKS)


Groovyイン・アクション

Groovyイン・アクション