Skip to content

UR4N0-235/XWindowSystem_Screenshoter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

XWindowSystem_Screenshoter

A simple use and little size python library to get screenshot of a single window on linux!

How use

There are two ways to use it, in synchronous and asynchronous mode (in reference to the screenshot) But the statement is very similar.

Declaration

sync

window_sync = WindowCaptureSync("firefox")

async

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

To get Screenshot

sync

window_sync = WindowCaptureSync("firefox")
screenshot = window_sync.get_screenshot()

async

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

Examples

sync

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

async

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)

Releases

No releases published

Packages

No packages published

Languages