我想使用python截屏。
我尝试使用PIL,但是由于我使用的是64位Windows,而python PIL不起作用(我只能找到32位PIL版本)。我正在使用python 2.7.1。
我想截图,只要速度可以超过每秒1个,就没关系了。优选地,它也应该能够裁剪需要截屏的区域,但这并不是最重要的。
主要问题似乎是我在64位上运行,很多事情似乎与此不兼容。我真的不希望回到32位,尽管有可能。是否有任何程序或模块可以做到这一点?
在http://www.lfd.uci.edu/~gohlke/pythonlibs/#pil上获取win- amd64-py2.7的PIL 。
from PIL import ImageGrab im = ImageGrab.grab() im.save('screenshot.png')
更新:使用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')