+ self.take()
+
+
+ def take(self):
+ im = self.cam.get_image()
+ self.screen.display_picture(im)
+ im.save(self.saving_dir + "{0:0>3}.jpg".format(self.im_number), 'JPEG')
+ self.im_number += 1
+
+
+def main():
+ parser = argparse.ArgumentParser(description=__doc__)
+ parser.add_argument('-c', '--cmd', dest='cmd', action='store_true',
+ help="take commands from stdin")
+ parser.add_argument('-d', type=int, default=0,
+ help="video device id")
+ parser.add_argument('-a', type=int, default=0,
+ help="take picture automaticaly every A seconds")
+ parser.add_argument('-r', type=int, nargs=2, default=[640, 480],
+ help="set camera resolution")
+ args = parser.parse_args()
+
+ res=(args.r[0], args.r[1])
+ capture = Capture(args.d, res)
+
+
+ if args.cmd:
+
+ def enqueue_input(queue):
+ for line in iter(sys.stdin.readline, b''):
+ queue.put(line)
+
+ q = Queue()
+ t = Thread(target=enqueue_input, args=(q,))
+ t.daemon = True
+ t.start()
+
+ capture.live(q)