上一篇博文简要说明了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(); } } }