我可以在Python中使用快速低分辨率的屏幕截图吗?

时间:2017-11-23 19:42:57

标签: python python-imaging-library screenshot pillow

有没有办法在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等可以做到吗?

0 个答案:

没有答案