[python-win32] screen capture and win32gui.GetDesktopWindow()
timr at probo.com
Thu Dec 7 02:02:41 CET 2006
Ray Schumacher wrote:
> I've been mulling screen capture code. I tried PIL's
> ImageGrab().grab() (with pymedia) but find PIL's method to be pretty
> slow, ~4grabs per second max with no other processes.
> pymedia is pretty quick once I hand it the data.
How large is your screen? A 1600x1200 true-color desktop is 8 megabytes
worth of pixels, and it can take tens of milliseconds just to copy it
over the PCI bus to main memory.
> There has to be another way to get a copy or buffer() of the screen
> DC's data that is faster (I hope).
> I putsed around with win32gui
> desktop = win32gui.GetDesktopWindow()
> dt_l, dt_t, dt_r, dt_b = win32gui.GetWindowRect(desktop)
> but couldn't see how to get at the data via the handle.
You can use BitBlt to copy it to a DIB, but it's not going to be very
convenient to work with.
Tim Roberts, timr at probo.com
Providenza & Boekelheide, Inc.
More information about the Python-win32