2

BufferedImage 有一个返回 Image 的 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 回答