Further refactoring

This commit is contained in:
Balthasar Reuter
2015-06-17 23:59:42 +02:00
parent 6b0a57af05
commit dcc8f59a47

View File

@@ -31,7 +31,7 @@ image_size = (2352, 1568)
# Image basename
picture_basename = datetime.now().strftime("%Y-%m-%d/pic")
# GPIO channel of switch to shutdown the Pi
# GPIO channel of switch to shutdown the Photobooth
gpio_shutdown_channel = 24 # pin 18 in all Raspi-Versions
# GPIO channel of switch to take pictures
@@ -86,11 +86,15 @@ class PictureList:
class Photobooth:
def __init__(self, picture_basename, picture_size, trigger_channel, shutdown_channel, lamp_channel):
def __init__(self, picture_basename, picture_size, pose_time, display_time,
trigger_channel, shutdown_channel, lamp_channel):
self.display = GuiModule('Photobooth', display_size)
self.pictures = PictureList(picture_basename)
self.camera = CameraModule()
self.pic_size = picture_size
self.pose_time = pose_time
self.display_time = display_time
self.trigger_channel = trigger_channel
self.shutdown_channel = shutdown_channel
@@ -172,18 +176,18 @@ class Photobooth:
"""Assembles four pictures into a 2x2 grid"""
# Thumbnail size of pictures
size = (int(image_size[0]/2),int(image_size[1]/2))
thumb_size = (int(self.pic_size[0]/2),int(self.pic_size[1]/2))
# Create output image
output_image = Image.new('RGB', image_size)
output_image = Image.new('RGB', self.pic_size)
# Load images and resize them
for i in range(2):
for j in range(2):
k = i * 2 + j
img = Image.open(input_filenames[k])
img.thumbnail(size)
offset = (j * size[0], i * size[1])
img.thumbnail(thumb_size)
offset = (j * thumb_size[0], i * thumb_size[1])
output_image.paste(img, offset)
output_image.save(output_filename, "JPEG")
@@ -197,7 +201,7 @@ class Photobooth:
self.display.clear()
self.display.show_message("POSE!\n\nTaking four pictures...");
self.display.apply()
sleep(pose_time - 3)
sleep(self.pose_time - 3)
# Countdown
for i in range(3):
@@ -233,7 +237,7 @@ class Photobooth:
self.display.clear()
self.display.show_picture(outfile, size, (0,0))
self.display.apply()
sleep(display_time)
sleep(self.display_time)
# Reenable lamp
self.gpio.set_output(self.lamp_channel, 1)
@@ -246,7 +250,8 @@ class Photobooth:
#################
def main():
photobooth = Photobooth(picture_basename, image_size, gpio_trigger_channel, gpio_shutdown_channel, gpio_lamp_channel)
photobooth = Photobooth(picture_basename, image_size, pose_time, display_time,
gpio_trigger_channel, gpio_shutdown_channel, gpio_lamp_channel)
photobooth.run()
return photobooth.teardown()