- 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 )