【问题标题】:How do I take 25 screenshots of my screen every second [closed]我如何每秒截取 25 张屏幕截图 [关闭]
【发布时间】:2014-03-11 18:56:58
【问题描述】:

我需要这个的原因是因为我正在创建一个名为 fraser 的免费屏幕录像机,我真的需要能够让它有一个 FrameRate。谁能告诉我如何让它每秒截取 25 张截图?

【问题讨论】:

  • 如果您要编写实时屏幕录像机,Java 并不完全是“A 计划”。
  • 海象先生到目前为止有什么努力吗?这听起来像“HI,GIMME CODE PLZ”
  • java.awt.Robot 有截屏方法,但不知道这个任务是否足够高效。
  • "我正在写一个免费的X,我怎么写X?"永远不会领先任何地方。
  • 您没有使用本机 Java。使用依赖于操作系统的 JINI,您将有机会。

标签: java screenshot


【解决方案1】:

你可以使用java.awt.Robot;它有一个名为createScreenCapture(Rectangle screenRect) 的方法。对于截图之间的延迟,例如使用Thread.sleep(long millis)

不过,此程序的代码由您自己编写。

【讨论】:

    【解决方案2】:

    Java 引入了一个可能对您有用的屏幕抓取器。您可以更改在时间间隔内拍摄的照片数量。看看Here

    【讨论】:

    • Stack Overflow 上不赞成仅链接的答案。最好包含链接中的相关信息。
    【解决方案3】:

    往这个方向看:

    ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(3);
    

    然后就可以定义 MyClass 类了:

    class MyClass implements Runnable {
        Robot robot = new Robot();
    
        @Override
        public void run() {
             BufferedImage image = robot.createScreenCapture(...);
        }
    }
    

    然后你可以这样做:

    scheduler.scheduleAtFixedRate(new MyClass(), 1, 1, TimeUnit.SECONDS);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多