有没有办法在Python中使用快速低分辨率屏幕截图?
我已经尝试过PIL.ImageGrab和DreamScreen,我注意到DreamScreen使用的是Win32s Screencapture方法。
Win32方法如下所示:
def take_screenshot1(hwnd):
wDC = win32gui.GetWindowDC(hwnd)
dcObj=win32ui.CreateDCFromHandle(wDC)
cDC=dcObj.CreateCompatibleDC()
dataBitMap = win32ui.CreateBitmap()
dataBitMap.CreateCompatibleBitmap(dcObj, 500, 500)
cDC.SelectObject(dataBitMap)
cDC.BitBlt((0, 0), (500, 500), dcObj, (0, 0), win32con.SRCCOPY)
im = dataBitMap.GetBitmapBits(True) # Tried False also
img = np.array(im)
cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
print(img)
dcObj.DeleteDC()
cDC.DeleteDC()
win32gui.ReleaseDC(hwnd, wDC)
win32gui.DeleteObject(dataBitMap.GetHandle())
我不需要为我的项目提供完整分辨率的屏幕截图,一半或更低的分辨率也没关系,但我无法找到办法,我只能选择"较小的区域是不一样的。 BitBlt,PIL等可以做到吗?