1

jFreeChart を jpeg ファイルに保存する方法は次のとおりです。

JFreeChart chart = ChartFactory.createXYLineChart(
"Hysteresis Plot", // chart title
"Pounds(lb)", // domain axis label
"Movement(inch)", // range axis label
dataset, // data
PlotOrientation.VERTICAL, // orientation
false, // include legend
true, // tooltips
false // urls
); 

それで:

 image=chart.createBufferedImage( 300, 200);

画像は次のように表示されます。 ここに画像の説明を入力

私の保存機能は次のとおりです。

public static void saveToFile(BufferedImage img)
    throws FileNotFoundException, IOException
    {
        FileOutputStream fos = new FileOutputStream("D:/Sample.jpg");
        JPEGImageEncoder encoder2 =
        JPEGCodec.createJPEGEncoder(fos);
        JPEGEncodeParam param2 =
        encoder2.getDefaultJPEGEncodeParam(img);
        param2.setQuality((float) 200, true);
        encoder2.encode(img,param2);
        fos.close();
    }

私はそれを次のように呼んでいます:

try{
            saveToFile(image);
           }catch(Exception e){
           e.printStackTrace();
         }

保存された画像は次のように表示されます。

ここに画像の説明を入力

私が間違っている場所、または表示どおりに保存する方法、または.pngとして保存する必要があるかもしれない提案。.png として保存する方法を教えてもらえますか?

ありがとう

4

3 に答える 3

6

簡単な解決策:

public static void saveToFile(BufferedImage img)
    throws FileNotFoundException, IOException
    {

        File outputfile = new File("D:\\Sample.png");
    ImageIO.write(img, "png", outputfile);
    }

表示される方法で画像を保存しました。

于 2013-02-26T18:13:24.180 に答える
1

これがどのように行われるかについての素晴らしい例を次に示します。

File imageFile = new File("C:\\LineChart.png");
int width = 640;
int height = 480;
try {
    ChartUtilities.saveChartAsPNG(imageFile, chart, width, height);
} catch (IOException ex) {
    System.err.println(ex);
}
于 2016-11-03T15:30:06.650 に答える
1

画像を保存するために ImageIo.write を使用する代わりに、次の関数を使用することをお勧めします。

ChartUtilities.saveChartAsJPEG("name of your file", jfreechart, lenght, width);

画像のサイズを管理できるだけでなく、フィルターなしで画像を保存できるからです。

于 2015-10-01T17:52:51.977 に答える