def test_workingCase(self): import Image fname = tempfile.mktemp() self.addCleanup(self._tryUnlink, fname) saveRectToBmp(fname, rect=(0, 0, 200, 100)) with open(fname, "rb") as f: im = Image.open(f) self.assertEqual((200, 100), im.size)
def test_workingCase(self): if not Image: self.skipTest("No PIL or Pillow") fname = tempfile.mktemp() self.addCleanup(self._tryUnlink, fname) saveRectToBmp(fname, rect=(0, 0, 200, 100)) with open(fname, "rb") as f: im = Image.open(f) self.assertEqual((200, 100), im.size)
def test_workingCase(self): if not Image: self.skipTest("No PIL or Pillow") fname = tempfile.mktemp() self.addCleanup(self._tryUnlink, fname) saveRectToBmp(fname, rect=(0, 0, 200, 100)) with open(fname, "rb") as f: im = Image.open(f) self.assertEqual((200, 100), im.size)
def test_invalidRect(self): fname = tempfile.mktemp() self.addCleanup(self._tryUnlink, fname) self.assertRaises( ValueError, lambda: saveRectToBmp(fname, rect=(100, 100, 100, 100))) self.assertRaises( ValueError, lambda: saveRectToBmp(fname, rect=(100, 100, 99, 100))) self.assertRaises( ValueError, lambda: saveRectToBmp(fname, rect=(100, 100, 100, 99))) self.assertRaises( ValueError, lambda: saveRectToBmp(fname, rect=(100, 100, 100, None))) self.assertRaises( ValueError, lambda: saveRectToBmp(fname, rect=(100, 100, "100", None))) self.assertRaises( ValueError, lambda: saveRectToBmp(fname, rect=(100.0, 100, 101, 101))) self.assertRaises( ValueError, lambda: saveRectToBmp(fname, rect=(100, 100, 101, 101.0))) self.assertRaises( ValueError, lambda: saveRectToBmp(fname, rect=(100, 100, 200, 200, 200))) self.assertRaises(TypeError, lambda: saveRectToBmp(fname, rect=None)) self.assertRaises(TypeError, lambda: getRectAsImage(rect=None))
def test_rectTooBig(self): fname = tempfile.mktemp() self.addCleanup(self._tryUnlink, fname) # Note that 26000x26000 is big enough to fail it on my system self.assertRaises( GrabFailed, lambda: saveRectToBmp(fname, rect=(0, 0, 2600000, 2600000))) self.assertRaises( GrabFailed, lambda: saveRectToBmp(fname, rect=(0, 0, 2600000, 260000000000000000)))
def mouseReleaseEvent(self, event): self.close() # find top right and bottom left x1 = min(self.begin.x(), self.end.x()) y1 = min(self.begin.y(), self.end.y()) x2 = max(self.begin.x(), self.end.x()) y2 = max(self.begin.y(), self.end.y()) # save copy of screen and call upload saveRectToBmp('capture.bmp', rect=(x1, y1, x2, y2)) Image.open('capture.bmp').save('capture.png') upload('capture.png')
def test_invalidRect(self): fname = tempfile.mktemp() self.addCleanup(self._tryUnlink, fname) self.assertRaises(ValueError, lambda: saveRectToBmp(fname, rect=(100, 100, 100, 100))) self.assertRaises(ValueError, lambda: saveRectToBmp(fname, rect=(100, 100, 99, 100))) self.assertRaises(ValueError, lambda: saveRectToBmp(fname, rect=(100, 100, 100, 99))) self.assertRaises(ValueError, lambda: saveRectToBmp(fname, rect=(100, 100, 100, None))) self.assertRaises(ValueError, lambda: saveRectToBmp(fname, rect=(100, 100, "100", None))) self.assertRaises(ValueError, lambda: saveRectToBmp(fname, rect=(100.0, 100, 101, 101))) self.assertRaises(ValueError, lambda: saveRectToBmp(fname, rect=(100, 100, 101, 101.0))) self.assertRaises(ValueError, lambda: saveRectToBmp(fname, rect=(100, 100, 200, 200, 200))) self.assertRaises(TypeError, lambda: saveRectToBmp(fname, rect=None)) self.assertRaises(TypeError, lambda: getRectAsImage(rect=None))
def test_1x1SizeRect(self): import Image fname = tempfile.mktemp() + '.bmp' fnamePng = tempfile.mktemp() + '.png' self.addCleanup(self._tryUnlink, fname) self.addCleanup(self._tryUnlink, fnamePng) saveRectToBmp(fname, rect=(100, 100, 101, 101)) with open(fname, "rb") as f: im = Image.open(f) self.assertEqual((1, 1), im.size) im = getRectAsImage(rect=(100, 100, 101, 101)) self.assertEqual((1, 1), im.size) im.save(fnamePng, format='png') with open(fnamePng, "rb") as f: im = Image.open(f) self.assertEqual((1, 1), im.size)
def test_1x1SizeRect(self): if not Image: self.skipTest("No PIL or Pillow") fname = tempfile.mktemp() + '.bmp' fnamePng = tempfile.mktemp() + '.png' self.addCleanup(self._tryUnlink, fname) self.addCleanup(self._tryUnlink, fnamePng) saveRectToBmp(fname, rect=(100, 100, 101, 101)) with open(fname, "rb") as f: im = Image.open(f) self.assertEqual((1, 1), im.size) im = getRectAsImage(rect=(100, 100, 101, 101)) self.assertEqual((1, 1), im.size) im.save(fnamePng, format='png') with open(fnamePng, "rb") as f: im = Image.open(f) self.assertEqual((1, 1), im.size)
def test_rectTooBig(self): fname = tempfile.mktemp() self.addCleanup(self._tryUnlink, fname) # Note that 26000x26000 is big enough to fail it on my system self.assertRaises(GrabFailed, lambda: saveRectToBmp(fname, rect=(0, 0, 2600000, 2600000))) self.assertRaises(GrabFailed, lambda: saveRectToBmp(fname, rect=(0, 0, 2600000, 260000000000000000)))
def screenshot(self): x0 = self.size[0] + 353 y0 = self.size[1] + 212 x1 = self.size[0] + 657 y1 = self.size[1] + 312 saveRectToBmp(self.saveFile, rect=(x0, y0, x1, y1))
Created on Thu Nov 14 13:55:02 2019 @author: tinivella """ from __future__ import print_function from desktopmagic.screengrab_win32 import (getDisplayRects, saveScreenToBmp, saveRectToBmp, getScreenAsImage, getRectAsImage, getDisplaysAsImages) # Save the entire virtual screen as a BMP (no PIL required) saveScreenToBmp('screencapture_entire.bmp') # Save an arbitrary rectangle of the virtual screen as a BMP (no PIL required) saveRectToBmp('screencapture_256_256.bmp', rect=(0, 0, 256, 256)) # Save the entire virtual screen as a PNG entireScreen = getScreenAsImage() entireScreen.save('screencapture_entire.png', format='png') # Get bounding rectangles for all displays, in display order print("Display rects are:", getDisplayRects()) # -> something like [(0, 0, 1280, 1024), (-1280, 0, 0, 1024), (1280, -176, 3200, 1024)] # Capture an arbitrary rectangle of the virtual screen: (left, top, right, bottom) rect256 = getRectAsImage((0, 0, 256, 256)) rect256.save('screencapture_256_256.png', format='png') # Unsynchronized capture, one display at a time. # If you need all displays, use getDisplaysAsImages() instead.
from desktopmagic.screengrab_win32 import saveRectToBmp import time from datetime import datetime while True: print("60 seconds until next") time.sleep(60) currTime = datetime.now().time() fixed = str(currTime).replace(":", "") saveRectToBmp("Screenshot" + str(fixed) + ".png", rect=(-690, -40, -150, 260)) print("Screenshot taken")