b9879d87418717413db5f171876e918698f4195a
[imago.git] / capture.py
1 #!/usr/bin/env python
2
3 """Go image capture"""
4
5 import sys
6 import argparse
7
8 import pygame
9 from pygame.locals import QUIT, KEYDOWN
10 import Image
11
12 from camera import Camera
13
14 class Screen:
15     def __init__(self):
16         pygame.init()
17         pygame.display.set_mode((640,480))
18         pygame.display.set_caption("Go image capture")
19         self._screen = pygame.display.get_surface()
20
21     def display_picture(self, im):
22         pg_img = pygame.image.frombuffer(im.tostring(), im.size, im.mode)
23         self._screen.blit(pg_img, (0,0))
24         pygame.display.flip()
25
26
27 def main():
28     parser = argparse.ArgumentParser(description=__doc__)
29     parser.add_argument('-d', type=int, default=0,
30                         help="video device id")
31     args = parser.parse_args()
32    
33     cam = Camera(vid=args.d)
34     screen = Screen()
35
36     im_number = 0
37
38     while True:
39         event = pygame.event.wait()
40         if event.type == QUIT:
41             break
42         elif event.type == KEYDOWN:
43             im = cam.get_image()
44             screen.display_picture(im)
45             im.save("./captured/{0:0>3}.jpg".format(im_number), 'JPEG')
46             im_number += 1
47     
48 if __name__ == '__main__':
49     try:
50         main()
51     finally:
52         pygame.quit()