Newer
Older
safe-algo-pro / services / device_frame_service.py
zhangyingjie on 17 Oct 1 KB 修改线程控制问题
import os
import uuid
from datetime import datetime

from sqlmodel import Session
from entity.device_frame import DeviceFrame

import cv2


class DeviceFrameService:

    def __init__(self, db: Session):
        self.db = db

    def add_frame(self, device_id, frame_data) -> DeviceFrame:
        def save_frame_file():
            # 生成当前年月日作为目录路径
            current_date = datetime.now().strftime('%Y-%m-%d')
            # 生成随机 UUID 作为文件名
            file_name = str(uuid.uuid4()) + ".jpeg"
            # 创建保存图片的完整路径
            save_path = os.path.join('./storage/frames', current_date, file_name)
            # 创建目录(如果不存在)
            os.makedirs(os.path.dirname(save_path), exist_ok=True)
            # 保存图片
            cv2.imwrite(save_path, frame_data)
            return save_path

        # 保存图片文件
        file_path = save_frame_file()
        device_frame = DeviceFrame(device_id=device_id, frame_path=file_path)
        self.db.add(device_frame)
        self.db.commit()
        self.db.refresh(device_frame)
        return device_frame