From 1e365818513e9021c719a4f18b8a6f071e317eb2 Mon Sep 17 00:00:00 2001 From: Balthasar Reuter Date: Wed, 6 May 2015 23:03:12 +0200 Subject: [PATCH] Prettifying --- photobooth.py | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/photobooth.py b/photobooth.py index 5b11fac..4509e9c 100755 --- a/photobooth.py +++ b/photobooth.py @@ -1,6 +1,8 @@ #!/usr/bin/env python # Created by br@re-web.eu, 2015 +from __future__ import division + import sys import subprocess import time @@ -22,6 +24,9 @@ image_offset = (80,60) # Idle image image_idle = "idle.jpg" +# Pose image +image_pose = "pose.png" + # Image basename image_basename = "pic" @@ -70,9 +75,18 @@ class GUI_PyGame: return self.size def show_picture(self, filename, size=(0,0), offset=(0,0)): + # Use window size if none given if size == (0,0): size = self.size + # Load image from file image = pygame.image.load(filename) + # Extract image size and determine scaling + image_size = image.get_rect().size + max_size = (min(size[0],image_size[0]),min(size[1],image_size[1])) + image_scale = min(max_size[0]/image_size[0], max_size[1]/image_size[1]) + # New image size + size = (int(image_size[0] * image_scale), int(image_size[1] * image_scale)) + # Apply scaling and display picture image = pygame.transform.scale(image, size).convert() self.screen.blit(image, offset) @@ -134,32 +148,40 @@ class Camera: ### Functions ### ################# -# def error(msg, exit_code=1): -# print "ERROR: " + msg -# teardown(exit_code) - def handle_keypress(key): + # Exit the application if key == ord('q'): teardown() + # Take pictures elif key == ord('c'): - print "Taking 4 pictures" + # Show pose message + display.reset() + display.show_picture(image_pose) + display.show_message("POSE! Taking four pictures..."); + display.apply() + time.sleep(5) + # Extract display and image sizes size = display.get_size() image_size = (int(size[0]/2), int(size[1]/2)) + # Take pictures filenames = [i for i in range(4)] for x in range(4): filenames[x] = camera.take_picture(images.get_next()) + # Show pictures for 10 seconds display.show_picture(filenames[0], image_size, (0,0)) display.show_picture(filenames[1], image_size, (image_size[0],0)) display.show_picture(filenames[2], image_size, (0,image_size[1])) display.show_picture(filenames[3], image_size, (image_size[0],image_size[1])) display.apply() - time.sleep(5) + time.sleep(10) + display.reset() def handle_exception(msg): display.reset() display.show_message("Error: " + msg) display.apply() time.sleep(3) + display.reset() def teardown(exit_code=0): display.teardown()