Advertisement
tsounakis

autoscreen

Nov 23rd, 2020 (edited)
890
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.45 KB | None | 0 0
  1. import pyautogui
  2. import datetime
  3. from time import sleep
  4. from PIL import Image, ImageChops, ImageStat
  5. import os
  6.  
  7. def take_screen(cpath):
  8.     lim = 0
  9.     os.chdir(cpath)
  10.     npath = "Screens/" + str(datetime.datetime.today().strftime('%Y-%m-%d'))
  11.     if not os.path.exists(npath):
  12.         os.makedirs(npath)
  13.         os.chdir(npath)
  14.         i = 1
  15.     else:
  16.         os.chdir(npath)
  17.         i = 10000
  18.  
  19.     im1 = pyautogui.screenshot()
  20.     sleep(0.5)
  21.     im2 = pyautogui.screenshot()
  22.    
  23.     while True:
  24.         sleep(1)
  25.         try:
  26.             im1 = im2
  27.         except FileNotFoundError:
  28.             i += 1
  29.             continue
  30.         im2 = pyautogui.screenshot()
  31.         if i > 1:
  32.             diff = ImageChops.difference(im1, im2)
  33.             stat = ImageStat.Stat(diff)
  34.             diff_ratio = sum(stat.mean) / len(stat.mean) * 255
  35.             if diff_ratio < 800:
  36.                 print("Thrown in the garbage: screen" + str(i-1) + ".jpeg due to insignificant change.")
  37.             else:
  38.                 im2.save("screen" + str(i) + ".jpeg")
  39.                 print("Saved: screen" + str(i) + ".jpeg.")
  40.             print("Screen " + str(i) + " " + str(diff_ratio))
  41.         i += 1
  42.         lim += 1
  43.         if lim == 7500:
  44.             break
  45.  
  46. def main():
  47.     path = os.getcwd()
  48.     for i in range(0,5):
  49.         print("Screenshots begin in " + str(5-i) + "...")
  50.         sleep(1)
  51.     take_screen(path)
  52.  
  53. if __name__ == "__main__":
  54.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement