summaryrefslogtreecommitdiffstats
path: root/lib/Python/Lib/PIL/ImageGrab.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Python/Lib/PIL/ImageGrab.py')
-rw-r--r--lib/Python/Lib/PIL/ImageGrab.py52
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