- Home ›
- JFreeChartを使ったグラフ作成 ›
- グラフの出力 ›
- HERE
JPEGファイルの品質を設定
画像として出力する場合にJPEG形式の場合は品質を合わせて設定する事が出来ます。品質を下げることでファイルサイズを小さくすることが出来ます。
「saveChartAsJPEG」メソッドを使います。前のページで使用したのと同じメソッド名ですが引数が異なります。
saveChartAsJPEG
public static void saveChartAsJPEG(java.io.File file,
float quality,
JFreeChart chart,
int width,
int height)
throws java.io.IOException
Saves a chart to a file in JPEG format. Parameters: file - the file (null not permitted). quality - the JPEG quality setting. chart - the chart (null not permitted). width - the image width. height - the image height. Throws: java.io.IOException - if there are any I/O errors.
引数に「quality」が追加されており、品質を設定します。設定できる値は「0.0f」から「1.0f」までのfloat型の数値で「1.0f」を指定した時が一番品質がよくサイズも大きくなります。
実際の使い方は次のようになります。
DefaultPieDataset data = new DefaultPieDataset();
JFreeChart chart =
ChartFactory.createPieChart("Title", data, true, false, false);
File file = new File("./filename.jpeg");
try {
ChartUtilities.saveChartAsJPEG(file, 1.0f, chart, 300, 300);
} catch (IOException e) {
e.printStackTrace();
}
サンプルプログラム
では簡単なサンプルを作成して試してみます。
import org.jfree.chart.JFreeChart;
import org.jfree.chart.ChartFactory;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.chart.ChartUtilities;
import java.io.File;
import java.io.IOException;
public class Test2_1{
public static void main(String[] args) {
DefaultPieDataset data = new DefaultPieDataset();
data.setValue("1個", 20);
data.setValue("2個", 45);
data.setValue("3個", 10);
data.setValue("4個", 8);
data.setValue("その他", 17);
JFreeChart chart =
ChartFactory.createPieChart("金メダル予想", data, true, false, false);
File file1 = new File("./test2_1.jpeg");
File file2 = new File("./test2_2.jpeg");
try {
ChartUtilities.saveChartAsJPEG(file1, 1.0f, chart, 400, 300);
ChartUtilities.saveChartAsJPEG(file2, 0.3f, chart, 400, 300);
} catch (IOException e) {
e.printStackTrace();
}
}
}
上記をコンパイルした後で実行すると次のように表示されます。
実行後下記の2つのJPEG画像が出力されています。
上の画像が品質に「1.0f」を指定した場合でファイルサイズは「37,850byte」、下の画像が品質に「0.3f」を指定した場合でファイルサイズは「8,753byte」となっています。
( Written by Tatsuo Ikura )
JavaDrive