浏览 6441 次
锁定老帖子 主题:带鼠标截屏
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-04-12
public class ScreenSnapshot { public static void main(String[] args) { try { int width = (int)Toolkit.getDefaultToolkit().getScreenSize().getWidth(); int height = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight(); Robot robot = new Robot(); BufferedImage image = robot.createScreenCapture(new Rectangle(width,height)); ImageIO.write (image, "png" , new File("c:/cross/test/1.png")); } catch (AWTException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } 我现在想用apache mina做一个多人桌面共享演示的软件,服务端每隔一定时间截屏发送给客户端。但是这个方法的缺点是没有把鼠标包含进来。既然是演示就需要鼠标的位置,有什么解决方案吗 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-04-13
各位都没遇到过这样的问题吗?????
|
|
返回顶楼 | |
发表时间:2012-04-13
最后修改:2012-04-13
可以用MouseInfo.getPointerInfo()获取鼠标当前位置的信息。
int x = MouseInfo.getPointerInfo().getLocation().x; int y = MouseInfo.getPointerInfo().getLocation().y; 获取截屏的BufferedImage对象后,可以把你自定义的鼠标图片放到截图上当前鼠标所在的位置,这得用到Java 2D API. BufferedImage image = robot.createScreenCapture(new Rectangle(width,height)); Image cursor = ImageIO.read(new File("c:/cursor.gif")); int x = MouseInfo.getPointerInfo().getLocation().x; int y = MouseInfo.getPointerInfo().getLocation().y; Graphics2D graphics2D = image.createGraphics(); graphics2D.drawImage(cursor, x, y, 16, 16, null);//图片16*16大小 ImageIO.write (image, "png" , new File("c:/cross/test/1.png")); 希望这个对你有所帮助。 |
|
返回顶楼 | |
发表时间:2012-04-13
to jobar:
谢谢!只能自己在原始图片上绘制了。 |
|
返回顶楼 | |
发表时间:2012-04-13
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("/").toString(); String imagepath2 = ScreenSnapshot.class.getResource("/").getPath().toString(); System.out.println(imagepath+"cursor.gif"); System.out.println(imagepath2+"cursor.gif"); BufferedImage cursor= ImageIO.read(new File(imagepath2+"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(); } } } |
|
返回顶楼 | |
发表时间:2012-04-13
嗯,效果怎么样,好使吧
|
|
返回顶楼 | |
发表时间:2012-04-13
还要考虑两个屏幕的大小不同
|
|
返回顶楼 | |
发表时间:2012-05-11
得到鼠标坐标,然后是拖拽事件,得到拖拽后的坐标。然后截图
|
|
返回顶楼 | |