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))
29 def __init__(self, device, res):
30 self.cam = Camera(vid=device, res=res)
31 self.screen = Screen(res)
35 self.saving_dir = "./captured/" + time.strftime("%Y-%m-%d %H:%M/")
37 if not os.path.isdir(self.saving_dir):
38 os.makedirs(self.saving_dir)
45 clock = pygame.time.Clock()
46 while not done: #live preview
47 for event in pygame.event.get():
48 if event.type == pygame.QUIT:
51 if event.type == pygame.KEYDOWN:
54 im = self.cam.get_image()
55 self.screen.display_picture(im)
58 def auto(self, interval):
60 clock = pygame.time.Clock()
64 for event in pygame.event.get():
65 if event.type == pygame.QUIT:
67 if time.time() - last > interval:
69 im = self.cam.get_image()
70 self.screen.display_picture(im)
71 im.save(self.saving_dir + "{0:0>3}.jpg".format(self.im_number), 'JPEG')
77 event = pygame.event.wait()
78 if event.type == QUIT:
80 if event.type != KEYDOWN:
84 self.screen.display_picture(im)
85 im.save(self.saving_dir + "{0:0>3}.jpg".format(self.im_number), 'JPEG')
91 parser = argparse.ArgumentParser(description=__doc__)
92 parser.add_argument('-d', type=int, default=0,
93 help="video device id")
94 parser.add_argument('-a', type=int, default=0,
95 help="take picture automaticaly every A seconds")
96 parser.add_argument('-r', type=int, nargs=2, default=[640, 480],
97 help="set camera resolution")
98 args = parser.parse_args()
100 res=(args.r[0], args.r[1])
101 capture = Capture(args.d, res)
111 if __name__ == '__main__':