Захват фото с помощью flask веб-сервера на Raspberrypi - PullRequest
0 голосов
/ 22 января 2020

Это моя кнопка, вызывающая функцию, но когда я нажимаю ее, она просто обновляет страницу.

href="{{ url_for('takephoto') }}"><input type="button" value="takephoto">

Это часть кода в app.py. Все модули импортируются в начале:

@app.route('/camera',methods=['POST'])
def takephoto():
    os.system("sudo service uv4l_raspicam stop")        
    camera = picamera.PiCamera()
    camera.start_preview()
    camera.capture(time.strftime("photos/%d-%m-%Y %H-%M-%S.jpg"))
    camera.stop_preview()
    camera.close()
    os.system("sudo service uv4l_raspicam start")

1 Ответ

0 голосов
/ 22 января 2020

Вы, вероятно, хотите захватить в поток , а затем разобраться с этим.

У меня нет Pi, доступного для тестирования прямо сейчас, но что-то вроде:

import io
import time
import picamera

@app.route('/camera',methods=['POST'])
def takephoto():
    # Create an in-memory stream
    my_stream = io.BytesIO()
    with picamera.PiCamera() as camera:
        camera.start_preview()
        # Camera warm-up time
        time.sleep(2)
        camera.capture(my_stream, 'jpeg')

    my_stream.seek(0)
    return send_file(my_stream.read(), mimetype='image/jpeg')

Затем создайте отдельный маршрут, который отображает шаблон:

@app.route('/')
def index():
    return render_template('index.html')

С этим в шаблоне:

<img src="{{ url_for('takephoto') }}" />

Перезагрузка этой страницы должна захватить новое изображение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...