forked from KPR/KPRSpaceAPI
35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
import os
|
|
from PIL import Image
|
|
import glob
|
|
|
|
def get_latest_screenshot(directory):
|
|
""" Get the latest screenshot file from the given directory. """
|
|
list_of_files = glob.glob(os.path.join(directory, '*.jpg')) # You can change the file extension if needed
|
|
latest_file = max(list_of_files, key=os.path.getctime)
|
|
return latest_file
|
|
|
|
def process_image(image_path):
|
|
""" Process the image to decide if it's dark or light. """
|
|
with Image.open(image_path) as img:
|
|
# Resize image to 2x2
|
|
img = img.resize((2, 2))
|
|
|
|
# Get average color of the pixels
|
|
average_color = sum(img.getdata(), (0, 0, 0))
|
|
average_color = [color / 4 for color in average_color] # Since the image is 2x2
|
|
|
|
# Determine if the image is dark or light
|
|
if sum(average_color) / 3 < 128: # Average RGB values less than 128 is considered dark
|
|
return 'closed'
|
|
else:
|
|
return 'open'
|
|
|
|
# Directory where the screenshots are stored
|
|
screenshot_directory = '/var/lib/motion/'
|
|
|
|
# Get the latest screenshot
|
|
latest_screenshot = get_latest_screenshot(screenshot_directory)
|
|
|
|
# Process the image and determine hackspace status
|
|
hackspace_status = process_image(latest_screenshot)
|
|
print(f"The hackspace is {hackspace_status}.") |