23 lines
561 B
Python
23 lines
561 B
Python
from io import BytesIO
|
|
from typing import Optional
|
|
|
|
import cv2
|
|
from PIL import Image
|
|
|
|
|
|
class Camera:
|
|
capture: cv2.VideoCapture
|
|
|
|
def __init__(self):
|
|
self.capture = cv2.VideoCapture(0)
|
|
|
|
def get_image(self) -> Optional[bytes]:
|
|
return_code, image = self.capture.read()
|
|
if not return_code:
|
|
return None
|
|
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
|
|
jpg = Image.fromarray(image_rgb)
|
|
byte_stream = BytesIO()
|
|
jpg.save(byte_stream, 'JPEG')
|
|
return bytes(byte_stream.getbuffer())
|