【发布时间】:2017-04-06 16:45:34
【问题描述】:
如何将JPanel 转换为File?我的面板有一个移动的Image,我想获得单独的帧。
【问题讨论】:
标签: java image swing file jpanel
如何将JPanel 转换为File?我的面板有一个移动的Image,我想获得单独的帧。
【问题讨论】:
标签: java image swing file jpanel
您可以在不同的时间点创建面板的BufferedImage,然后将图像保存到文件中。
这个的基本逻辑是:
BufferedImage image = new BufferedImage(panel.getWidth(), panel.getHeight(), BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = image.createGraphics();
panel.print( g2d );
g2d.dispose();
ImageIO.write(...);
查看Screen Image 类,了解实现上述功能的便捷方法。
当然这不会很有效,因为您需要为每一帧提供一个全新的图像。
【讨论】:
print 或printAll 而不是paint,因为它不涉及双缓冲......并且如果组件不是,则不会引发异常在屏幕上实现;)
NullPointerException 获得了它,但这可能与它根本没有添加到任何父级的事实有关,因此它在设置双缓冲区时遇到了问题。 .. 或者别的什么,我刚刚发现 print 和 printAll 在这些情况下更可靠:P