timer shows remaining time
[imago.git] / capture.py
index 98ad7be..bbc3c1e 100755 (executable)
@@ -1,7 +1,8 @@
 #!/usr/bin/env python
 
-"""Go image capture."""
+"""Go image capture"""
 
+import os
 import sys
 import argparse
 
@@ -12,9 +13,9 @@ import Image
 from camera import Camera
 
 class Screen:
-    def __init__(self):
+    def __init__(self, res):
         pygame.init()
-        pygame.display.set_mode((640,480))
+        pygame.display.set_mode(res)
         pygame.display.set_caption("Go image capture")
         self._screen = pygame.display.get_surface()
 
@@ -26,25 +27,24 @@ class Screen:
 
 def main():
     parser = argparse.ArgumentParser(description=__doc__)
-    #parser.add_argument('file', metavar='file', nargs=1,
-    #                    help="image to analyse")
-    #parser.add_argument('-w', type=int, default=640,
-    #                    help="scale image to the specified width before analysis")
-    parser.add_argument('-d', '--device', type=int, default=0,
-                        help="number of video device to use")
-    #parser.add_argument('-s', '--save', dest='do_something', action='store_const',
-    #                    const=image_save, default=im_debug.show,
-    #                    help="save images instead of displaying them")
+    parser.add_argument('-d', type=int, default=0,
+                        help="video device id")
+    parser.add_argument('-r', type=int, nargs=2, default=[640, 480],
+                        help="set camera resolution")
     args = parser.parse_args()
 
-    cam = Camera(device=args.device)
-    screen = Screen()
+    res=(args.r[0], args.r[1])
 
-    im = cam.get_image()
-    screen.display_picture(im)
+    cam = Camera(vid=args.d, res=res)
+    screen = Screen(res)
 
     im_number = 0
 
+    saving_dir = "./captured/"
+
+    if not os.path.isdir(saving_dir):
+        os.makedirs(saving_dir)
+
     while True:
         event = pygame.event.wait()
         if event.type == QUIT:
@@ -52,8 +52,10 @@ def main():
         elif event.type == KEYDOWN:
             im = cam.get_image()
             screen.display_picture(im)
-            im.save("./captured/{0:0>3}.jpg".format(im_number), 'JPEG')
+            im.save(saving_dir + "{0:0>3}.jpg".format(im_number), 'JPEG')
             im_number += 1
+
+    del cam
     
 if __name__ == '__main__':
     try: