diff options
Diffstat (limited to 'lib/Python/Lib/PIL/ImageGrab.py')
-rw-r--r-- | lib/Python/Lib/PIL/ImageGrab.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/lib/Python/Lib/PIL/ImageGrab.py b/lib/Python/Lib/PIL/ImageGrab.py new file mode 100644 index 000000000..ef0135334 --- /dev/null +++ b/lib/Python/Lib/PIL/ImageGrab.py @@ -0,0 +1,52 @@ +# +# The Python Imaging Library +# $Id$ +# +# screen grabber (windows only) +# +# History: +# 2001-04-26 fl created +# 2001-09-17 fl use builtin driver, if present +# 2002-11-19 fl added grabclipboard support +# +# Copyright (c) 2001-2002 by Secret Labs AB +# Copyright (c) 2001-2002 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + +from PIL import Image + +import sys +if sys.platform != "win32": + raise ImportError("ImageGrab is Windows only") + +try: + # built-in driver (1.1.3 and later) + grabber = Image.core.grabscreen +except AttributeError: + # stand-alone driver (pil plus) + import _grabscreen + grabber = _grabscreen.grab + + +def grab(bbox=None): + size, data = grabber() + im = Image.frombytes( + "RGB", size, data, + # RGB, 32-bit line padding, origo in lower left corner + "raw", "BGR", (size[0]*3 + 3) & -4, -1 + ) + if bbox: + im = im.crop(bbox) + return im + + +def grabclipboard(): + debug = 0 # temporary interface + data = Image.core.grabclipboard(debug) + if isinstance(data, bytes): + from PIL import BmpImagePlugin + import io + return BmpImagePlugin.DibImageFile(io.BytesIO(data)) + return data |