2

BufferedImageには、画像を返すgetSubimage(x、y、width、height)メソッドがあります。JPanelでグラフィックを描画していますが、JPanelを使用してBufferedImageメソッドと同様のことを行うにはどうすればよいですか?

例(それが正しかった場合のみ):

BufferedImage bi = jPanel.getSubimage(x, y, width, height);

ありがとうございました

4

1 に答える 1

0

おそらく任意のスイングコンポーネントをバッファリングされた画像にレンダリングできます。

サブイメージが必要なだけなので、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(...);

注:これは、すべてのコンポーネントが初期化、配置などされて表示された後にのみ機能します。

于 2012-07-15T05:21:04.263 に答える