phytopi/phytopi/camera/camera_pi.py

32 lines
No EOL
1,006 B
Python

import io
import time
import picamera
from phytopi.camera.base_camera import BaseCamera
class Camera(BaseCamera):
@staticmethod
def set_live_mode(live_mode=True):
Camera.live_mode = live_mode
@staticmethod
def frames():
with picamera.PiCamera() as camera:
# let camera warm up
time.sleep(2)
if Camera.live_mode:
stream = io.BytesIO()
for _ in camera.capture_continuous(stream, 'jpeg', use_video_port=True):
# return current frame
stream.seek(0)
yield stream.read()
# reset stream for next frame
stream.seek(0)
stream.truncate()
else:
for filename in camera.capture_continuous('tl-{timestamp:%Y%m%d_%H%M}.jpg', 'jpg',
use_video_port=False):
yield open(filename, 'rb').read()