将巨大的JFrame导出到文件

时间:2015-09-17 23:54:17

标签: java image swing jframe bufferedimage

我需要将一些用Java生成的可视数据导出到PNG文件中。 我在源代码中使用的方法是:

//create jframe then draw on it...
jframe.setSize(jrame.getPreferredSize());
BufferedImage bufferedImage = new BufferedImage(jframe.getWidth(), jframe.getHeight(), BufferedImage.TYPE_INT_ARGB);
jframe.paint(bufferedImage.getGraphics());
jframe.dispose();

问题是当绘图很大时(因为它需要),有时导出失败:

java.lang.IllegalArgumentException:尺寸(宽度= 73614高度= 73540)太大

导出部分图像不适合我。我可以输出什么?也许是定制出口?外部库/ API?如果除了png之外还使用了其他图片扩展名,那对我来说很好。

编辑:当内容变得大于监视器大小时,jframe已正确处理高度和宽度滚动。出口过程也适用于此。

1 个答案:

答案 0 :(得分:1)

您可能希望尝试某种不同的格式,例如SVG,而不是保存到PNG文件。关于处理Apache Batik and SVGGraphics2D的堆栈溢出的答案可能是一个开始。