MCPcopy
hub / github.com/Sentdex/pygta5 / grab_screen

Function grab_screen

original_project/grabscreen.py:7–38  ·  view source on GitHub ↗
(region=None)

Source from the content-addressed store, hash-verified

5import win32gui, win32ui, win32con, win32api
6
7def grab_screen(region=None):
8
9 hwin = win32gui.GetDesktopWindow()
10
11 if region:
12 left,top,x2,y2 = region
13 width = x2 - left + 1
14 height = y2 - top + 1
15 else:
16 width = win32api.GetSystemMetrics(win32con.SM_CXVIRTUALSCREEN)
17 height = win32api.GetSystemMetrics(win32con.SM_CYVIRTUALSCREEN)
18 left = win32api.GetSystemMetrics(win32con.SM_XVIRTUALSCREEN)
19 top = win32api.GetSystemMetrics(win32con.SM_YVIRTUALSCREEN)
20
21 hwindc = win32gui.GetWindowDC(hwin)
22 srcdc = win32ui.CreateDCFromHandle(hwindc)
23 memdc = srcdc.CreateCompatibleDC()
24 bmp = win32ui.CreateBitmap()
25 bmp.CreateCompatibleBitmap(srcdc, width, height)
26 memdc.SelectObject(bmp)
27 memdc.BitBlt((0, 0), (width, height), srcdc, (left, top), win32con.SRCCOPY)
28
29 signedIntsArray = bmp.GetBitmapBits(True)
30 img = np.fromstring(signedIntsArray, dtype='uint8')
31 img.shape = (height,width,4)
32
33 srcdc.DeleteDC()
34 memdc.DeleteDC()
35 win32gui.ReleaseDC(hwin, hwindc)
36 win32gui.DeleteObject(bmp.GetHandle())
37
38 return cv2.cvtColor(img, cv2.COLOR_BGRA2RGB)

Callers 2

mainFunction · 0.90
mainFunction · 0.90

Calls

no outgoing calls

Tested by 1

mainFunction · 0.72