没有PIL的Python windows 7截图

Max*_*Max 17 python screenshot image windows-7

我想用python截取屏幕截图.

我尝试过使用PIL,但由于我使用的是64位窗口,而python PIL不起作用(我只能找到32位PIL版本).我顺便使用python 2.7.1.

我想拍一个截图,它并不重要,只要速度每秒可以超过1秒.优选地,它还应该能够裁剪截屏的区域,但这并不是最重要的.

主要问题似乎是我在64位上运行,很多东西似乎与之不相容.如果可能的话,我真的不想回到32位.有没有可以做到这一点的程序或模块?

cgo*_*lke 33

http://www.lfd.uci.edu/~gohlke/pythonlibs/#pil获取win-amd64-py2.7的PIL .

from PIL import ImageGrab
im = ImageGrab.grab()
im.save('screenshot.png')
Run Code Online (Sandbox Code Playgroud)

更新:使用pywin32(http://sourceforge.net/projects/pywin32/)而不是PIL来截取多个虚拟屏幕的屏幕截图:

import win32gui, win32ui, win32con, win32api
hwin = win32gui.GetDesktopWindow()
width = win32api.GetSystemMetrics(win32con.SM_CXVIRTUALSCREEN)
height = win32api.GetSystemMetrics(win32con.SM_CYVIRTUALSCREEN)
left = win32api.GetSystemMetrics(win32con.SM_XVIRTUALSCREEN)
top = win32api.GetSystemMetrics(win32con.SM_YVIRTUALSCREEN)
hwindc = win32gui.GetWindowDC(hwin)
srcdc = win32ui.CreateDCFromHandle(hwindc)
memdc = srcdc.CreateCompatibleDC()
bmp = win32ui.CreateBitmap()
bmp.CreateCompatibleBitmap(srcdc, width, height)
memdc.SelectObject(bmp)
memdc.BitBlt((0, 0), (width, height), srcdc, (left, top), win32con.SRCCOPY)
bmp.SaveBitmapFile(memdc, 'screenshot.bmp')
Run Code Online (Sandbox Code Playgroud)

  • ...如果(因为我假设名称)你负责链接的网站,那么Kudos!我想疯狂地试图在64位中正确编译SciPy ;-) (5认同)