mirror of
https://git.roussel.pro/telecom-paris/pact.git
synced 2026-02-09 10:30:17 +01:00
Amélioration effets sur la camera
This commit is contained in:
@@ -1,14 +0,0 @@
|
|||||||
import asyncio
|
|
||||||
import json
|
|
||||||
import websockets
|
|
||||||
|
|
||||||
# create handler for each connection
|
|
||||||
async def handler(websocket):
|
|
||||||
data = await websocket.recv()
|
|
||||||
print(data)
|
|
||||||
await websocket.send(json.dumps({"type": "effects", "effects": [{"type": "thumbs_up", "x":13, "y": 30, "width": 50, "height": 50}]}))
|
|
||||||
|
|
||||||
|
|
||||||
start_server = websockets.serve(handler, "localhost", 5000)
|
|
||||||
asyncio.get_event_loop().run_until_complete(start_server)
|
|
||||||
asyncio.get_event_loop().run_forever()
|
|
||||||
28
code/borne/backend/exemple_overlay_camera.py
Normal file
28
code/borne/backend/exemple_overlay_camera.py
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
import asyncio
|
||||||
|
import json
|
||||||
|
import websockets
|
||||||
|
import numpy as np
|
||||||
|
import random
|
||||||
|
|
||||||
|
class WebsocketServer:
|
||||||
|
def __init__(self,getEffects,port=5000,host="localhost") -> None:
|
||||||
|
self.host = host
|
||||||
|
self.port = port
|
||||||
|
self.getEffects = getEffects
|
||||||
|
|
||||||
|
async def run(self):
|
||||||
|
async with websockets.serve(self.handler, self.host, self.port):
|
||||||
|
await asyncio.Future()
|
||||||
|
|
||||||
|
|
||||||
|
async def handler(self,websocket):
|
||||||
|
while True:
|
||||||
|
messages = self.getEffects()
|
||||||
|
await websocket.send(json.dumps(messages))
|
||||||
|
|
||||||
|
#Remplacer ça par la fonction qui récupère les effets (dans le module de reconnaissance de gestes)
|
||||||
|
def getEffects():
|
||||||
|
return {"type": "effects", "effects": [{"type": "thumbs_up", "x":random.randint(0,100), "y": random.randint(0,100), "width": 50, "height": 50}]}
|
||||||
|
|
||||||
|
server = WebsocketServer(getEffects)
|
||||||
|
asyncio.run(server.run())
|
||||||
@@ -54,6 +54,7 @@ class CameraEditor {
|
|||||||
|
|
||||||
_frame() {
|
_frame() {
|
||||||
const context = canvas.getContext("2d");
|
const context = canvas.getContext("2d");
|
||||||
|
if(this.streaming) {
|
||||||
if (this.width && this.height) {
|
if (this.width && this.height) {
|
||||||
canvas.width = this.width;
|
canvas.width = this.width;
|
||||||
canvas.height = this.height;
|
canvas.height = this.height;
|
||||||
@@ -61,6 +62,8 @@ class CameraEditor {
|
|||||||
this._drawEffects();
|
this._drawEffects();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
requestAnimationFrame(() => this._frame());
|
||||||
|
}
|
||||||
|
|
||||||
_drawEffects() {
|
_drawEffects() {
|
||||||
for (let {type,x,y,width,height} of this.activeEffects) {
|
for (let {type,x,y,width,height} of this.activeEffects) {
|
||||||
|
|||||||
Reference in New Issue
Block a user