次のコードを使用して、cv2 から画像をストリーミングします。
ビュー.py
def generate():
while True:
(flag, encodedImage) = cv2.imencode(".jpg", s_manager.acquire_image())
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + bytearray(encodedImage) + b'\r\n\r\n')
def main_stream(request):
return StreamingHttpResponse(generate(), content_type="multipart/x-mixed-replace;boundary=frame", )
stream.html
{% block stream %}
<div class="stream-container">
<img src="{% url 'stream:stream' %}" id="img-stream" draggable='false' ondragstart="return false;"></img>
</div>
{% endblock %}
Django チャネルをプロジェクトに追加すると、StreamingHttpResponse が機能しなくなりました
settings.py :
ASGI_APPLICATION = 'photon.asgi.application'
asgi.py
application = ProtocolTypeRouter({
'http': get_asgi_application(),
'websocket': AuthMiddlewareStack(URLRouter(ws_urlpatterns))
})
cv2 から画像をストリーミングし、同時に django チャンネルなどを使用できるソリューションが必要です。ありがとうございます!