11 from pygame.locals import QUIT, KEYDOWN
14 from camera import Camera
17 def __init__(self, res):
19 pygame.display.set_mode(res)
20 pygame.display.set_caption("Go image capture")
21 self._screen = pygame.display.get_surface()
23 def display_picture(self, im):
24 pg_img = pygame.image.frombuffer(im.tostring(), im.size, im.mode)
25 self._screen.blit(pg_img, (0,0))
30 parser = argparse.ArgumentParser(description=__doc__)
31 parser.add_argument('-d', type=int, default=0,
32 help="video device id")
33 parser.add_argument('-a', type=int, default=0,
34 help="take picture automaticaly every A seconds")
35 parser.add_argument('-r', type=int, nargs=2, default=[640, 480],
36 help="set camera resolution")
37 args = parser.parse_args()
39 res=(args.r[0], args.r[1])
41 cam = Camera(vid=args.d, res=res)
46 saving_dir = "./captured/" + time.strftime("%Y-%m-%d %H:%M/")
48 if not os.path.isdir(saving_dir):
49 os.makedirs(saving_dir)
52 clock = pygame.time.Clock()
53 while not done: #live preview
54 for event in pygame.event.get():
55 if event.type == pygame.QUIT:
59 if event.type == pygame.KEYDOWN:
63 screen.display_picture(im)
69 clock = pygame.time.Clock()
73 for event in pygame.event.get():
74 if event.type == pygame.QUIT:
76 if time.time() - last > args.a:
79 screen.display_picture(im)
80 im.save(saving_dir + "{0:0>3}.jpg".format(im_number), 'JPEG')
86 event = pygame.event.wait()
87 if event.type == QUIT:
89 if event.type != KEYDOWN:
93 screen.display_picture(im)
94 im.save(saving_dir + "{0:0>3}.jpg".format(im_number), 'JPEG')
99 if __name__ == '__main__':