jpanelの特定の領域をbufferedImage、または別のjpanelに表示される他の形式に変換する必要があります。
今までは、jpanel全体をbufferedImageに変換するコードしか見ていませんでしたが、私の場合は、jpanel内の領域だけが必要です。
ありがとう
画像を受信するために要求されたサイズでBufferedImageを作成します。
この画像に描画するためのGraphics2Dを入手し、JPanelにペイントさせます。
JPanel panel = ...
BufferedImage image = new BufferedImage(200, 200, TYPE_INT_ARGB);
Graphics2D gg = image.createGraphics();
try {
gg.translate(-100, -20); // start point of region negated
panel.paint(gg);
} finally {
gg.dispose();
}
全体をに変換するコードがすでにあるので、それを使用して、結果をBufferedImage
呼び出してサブリージョンを取得できます。getSubImage
BufferedImage
今までは、jpanel全体をbufferedImageに変換するコードしか見ていませんでしたが、私の場合は、jpanel内の領域だけが必要です。
次に、その画像を取得し、目的の領域を新しい画像に再描画します。これで完了です。
最も簡単なのはおそらくRobot.createScreenCapture()でしょう。
パネルの座標系から画面の座標系に変換する必要があります。Component.getBounds()およびComponent.getLocationOnScreen( )を参照してください。