BufferedImageには、画像を返すgetSubimage(x、y、width、height)メソッドがあります。JPanelでグラフィックを描画していますが、JPanelを使用してBufferedImageメソッドと同様のことを行うにはどうすればよいですか?
例(それが正しかった場合のみ):
BufferedImage bi = jPanel.getSubimage(x, y, width, height);
ありがとうございました
BufferedImageには、画像を返すgetSubimage(x、y、width、height)メソッドがあります。JPanelでグラフィックを描画していますが、JPanelを使用してBufferedImageメソッドと同様のことを行うにはどうすればよいですか?
例(それが正しかった場合のみ):
BufferedImage bi = jPanel.getSubimage(x, y, width, height);
ありがとうございました
おそらく任意のスイングコンポーネントをバッファリングされた画像にレンダリングできます。
サブイメージが必要なだけなので、2ステップのプロセスになると思います。1)JPanelをBufferedImageにレンダリングします。2)そのサブイメージを取得します。
BufferedImage bi = new BufferedImage(jPanel.getWidth(), jPanel.getHeight(), BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = (Graphics2D)bi.getGraphics();
panel.printAll(g); //I assume you wanted child elements too... otherwise just use paint(g)
BufferedImage result= bi.getSubimage(...);
注:これは、すべてのコンポーネントが初期化、配置などされて表示された後にのみ機能します。