上一篇博文简要说明了Robot类的截屏API。但是没有现成的API来生成带鼠标的截屏。下面给个带鼠标截屏的实例。
原理就是截屏后获取到鼠标的位置,用java.awt.Graphics2D的.drawImage方法绘制鼠标即可,代码如下:
public class ScreenSnapshot {
public static void main(String[] args) {
try {
Robot robot = new Robot();
Toolkit toolkit= Toolkit.getDefaultToolkit();
Rectangle screen_area= new Rectangle(toolkit.getScreenSize());
Point p= MouseInfo.getPointerInfo().getLocation();
BufferedImage screenshot= robot.createScreenCapture(screen_area);
String imagepath = ScreenSnapshot.class.getResource("/").getPath().toString();
BufferedImage cursor= ImageIO.read(new File(imagepath+"cursor.gif"));//cursor.gif 是你的鼠标图片
screenshot.createGraphics().drawImage(cursor, p.x, p.y, null);
ImageIO.write(screenshot, "jpg", new File("c:/cross/output.jpg"));
ImageIO.write(screenshot, "png", new File("c:/cross/output.png"));
} catch (HeadlessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (AWTException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}