当我调用robot.createscreencapture方法时,大约需要40毫秒才能返回一个BuffereImage。返回的bufferedimage是否表示40毫秒之前或之后的状态?
可能是中间状态?你知道我怎么能弄明白吗?
import java.awt.AWTException;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.image.BufferedImage;
public class ScreenCaptureTest{
public static void main(String[] args) {
Robot robot = null;
try{
robot = new Robot();
long millisBefore = System.currentTimeMillis();
BufferedImage bi = robot.createScreenCapture(new Rectangle(0,0,500,500));
long millisAfter = System.currentTimeMillis();
long millisTaken = millisAfter - millisBefore;
System.out.println("It took "+millisTaken+" milliseconds to execute.");
}
catch(AWTException e){
e.printStackTrace();
}
}
}
1条答案
按热度按时间kokeuurv1#
我听从了戴维斯的建议。结果如下:
这意味着它捕获了一个中间状态。截图总共用了15毫秒来执行。它从一开始就在9毫秒后捕捉到了屏幕。返回缓冲后的图像又花了6毫秒。
下面是我用来测量它的代码:
millislock.java文件:
截屏测试.java: