【发布时间】:2011-04-21 18:06:51
【问题描述】:
我在截屏时遇到问题。这是我的测试代码。
import java.awt.Robot;
import java.awt.AWTException;
import java.awt.image.BufferedImage;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.Dimension;
public class Test {
public static void main(String[] args) throws AWTException {
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int[] pixels = new int[(int) (screenSize.getWidth() * screenSize.getHeight()) * 3];
Robot robot = new Robot();
int i = 0;
while (true) {
robot.createScreenCapture(new Rectangle(screenSize))
.getRaster().getPixels(0, 0, (int) screenSize.getWidth(), (int) screenSize.getHeight(), pixels);
System.out.println(++i);
}
}
}
在我的 Mac*s* 上使用 OS X 10.6.4 和 Java 1.6.0_20-b02-279-10M3065,它在两次迭代后失败。它似乎在 Windows 上运行良好。你能重现这种行为吗?
线程“主”java.lang.OutOfMemoryError 中的异常:Java 堆空间 在 apple.awt.CRobot.getRGBPixels(CRobot.java:204) 在 java.awt.Robot.createScreenCapture(Robot.java:329) 在 Test.main(Test.java:16)
【问题讨论】: