• 締切済み

Graphicsからの画像出力

今javaで音場シミュレーションを行っているのですが、音場解析結果の Image を Graphics2D に変換し、JFreeChart で生成した時刻歴、FFTなどの結果を Graphics2D に グラフで貼り付けています。 Graphics2D g2 は以下のよう |--------| |音場結果| |--------| |グラフ6コ| |--------| 今これを画像出力したいのです。 調べると Image クラスのオブジェクトであれば、 ImageIO.write(image, "jpeg", new File(fileName)); のようにして出力できるようですが、Graphics(2D) から画像出力は可能でしょうか。

みんなの回答

  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.1

> Image を > Graphics2D に変換し、 これの意味が不明なのですが、 基本的に、方法は: (1)描画メソッド(たぶんpaintComponent()メソッド)の中でg2.drawXxx()しているものをすべてBufferedImageにもdrawして、 (というか、正統的には、いったん何もかもBufferedImageにdrawXxx()して、描画メソッドの中身はたった1行のdrwawImage(myBufferedImage, ...)だけにする。)そしてそのBufferedImageをImageIOする。 (2)すでに画面上に描かれたコンポーネントをBufferedImageにもpaintしてそれをImageIOする。 のどちらかの方法を使います。

GeRaSu
質問者

お礼

お返事ありがとうございます。 ご指摘があった 「Image をGraphics2D に変換し」 という部分ですが、 僕の大きな勘違いがあったようです。 g2.drawImage( img, 0, 0, this ); // 裏画面を表画面に複写 という記述の後 グラフイメージ.draw( g2, area, null, null, info ); ↑ org.jfree.chart.plot.XYPlot という感じでグラフを追加していったのですが、"img" と "g2" は独立している と思ってたのですが、そうではないようですね。もうちょっと表示について 勉強する必要があるみたいです。 ありがとうございました。

関連するQ&A