There are two ways to use it, in synchronous and asynchronous mode (in reference to the screenshot) But the statement is very similar.
window_sync = WindowCaptureSync("firefox")
window_async = WindowCaptureAsync("firefox")
The biggest difference is that in synchronous mode you must call a function to take the screenshot, whereas in asynchronous mode, a capture function is run in a loop and you will only need to call a property that will contain the most recently captured screenshot
window_sync = WindowCaptureSync("firefox")
screenshot = window_sync.get_screenshot()
window_async = WindowCaptureAsync("firefox")
window_async.start() # Start thread to screenshot loop
...
screenshot = window_async.screenshot
...
window_async.stop() # Stop thread when not used anymore
import cv2 as cv
from XWindowSystem_Screenshoter import WindowCaptureSync
wincap = WindowCaptureSync("firefox")
# first capture
image = wincap.get_screenshot()
image = cv.resize(image, (0,0), fx=0.6, fy=0.6)
cv.imshow("Test", image)
while True:
# press c to update image
if cv.waitKey(1) == ord('c'):
image = wincap.get_screenshot()
image = cv.resize(image, (0,0), fx=0.6, fy=0.6)
cv.imshow("Test", image)
if cv.waitKey(1) == ord('q'):
cv.destroyAllWindows()
break
import cv2 as cv
from XWindowSystem_Screenshoter import WindowCaptureAsync
wincap = WindowCaptureAsync("firefox")
wincap.start()
while True:
if wincap.screenshot is not None:
image = wincap.screenshot
image = cv.resize(image, (0,0), fx=0.6, fy=0.6)
cv.imshow("Test", image)
if cv.waitKey(1) == ord('q'):
cv.destroyAllWindows()
break
wincap.stop() # don't forget to stop thread!
exit(0)