Java Robot createScreenCapture performance

前端 未结 2 1826
借酒劲吻你
借酒劲吻你 2021-02-13 23:52

I need to grab a series of screenshots and concatenate them into a movie. I\'m trying to use the java Robot class to capture the screen.

But the createScreenCapture() m

相关标签:
2条回答
  • 2021-02-14 00:19

    I'd suggest going with C or C++ for this, it has much more direct access to the hardware.

    If you want the absolute maximum performance go to the driver level and just take the data straight off the video card. It's difficult to find a driver like this because it could be used to easily defeat any copy protection since it grabs the data as it's going to the screen.

    But if you need to stick with Java and Robot, are you sure it's just this one function call which is taking so long? It's not allocating a BufferedImage or something else?

    0 讨论(0)
  • 2021-02-14 00:24

    Try experimenting with different screen settings. The colour depth will affect it as AWT has to convert everything to a common raster format.

    Some example timings from my PC:

     Resolution | Depth | Time taken 
    ------------+-------+------------
     1280x1024  | 32    | 215ms
     1280x1024  | 16    | 155ms
     1600x900   | 32    | 235ms
    

    My adapter cannot do 24bpp or 64bpp so I was unable to test with those depths, but I would guess that they would require more CPU cycles to convert.

    0 讨论(0)
提交回复
热议问题