from gpiozero import Button, LED
from time import sleep, localtime, strftime
from picamera2 import Picamera2
from PIL import Image
import os, subprocess, signal
from signal import pause

button = Button(2)
red = LED(17)
white = LED(27)
home_dir = os.environ['HOME']
cam = Picamera2()
config = cam.create_still_configuration()
cam.configure(config)

def ledcam():
    for i in range(3):
        red.on()
        sleep(0.5)
        red.off()
        sleep(0.5)
    white.on()
    sleep(1)

    t = localtime()
    file_name = strftime('%I-%M-%S', t)
    cam.start()
    sleep(1)
    cam.capture_file(f"{home_dir}/Photos/{file_name}.jpg")
    cam.stop()
    print("Successfully taken photo")

    white.off()
    img = Image.open(f"{home_dir}/Photos/{file_name}.jpg").convert('L')
    dithered_img = img.convert('1', dither=Image.Dither.FLOYDSTEINBERG)
    dithered_img.save(f"{home_dir}/Photos/{file_name}_dit.jpg")
button.when_pressed = ledcam

    try:
        subprocess.run(["lp","-o", "fit-to-page", f"{home_dir}/Photos/{file_name}_dit.jpg"])
        print("Successfully printed photo")
    except Exception as e:
        print(f"Error: {e}")
    
    sleep(1)

pause()



