ENS Camera
==========

Come si usa
-----------
1. Avvia ENSCamera.exe.
2. Premi "Installa" una volta sola. Windows chiede i permessi di
   amministratore (UAC): serve a registrare la camera virtuale.
3. In Discord, OBS, Teams o Zoom scegli la webcam "ENS Camera".
4. Nella finestra di ENS Camera scegli la lente che vuoi: la tua faccia
   diventa una patata in costume. "Nessun filtro" mostra la webcam normale.

Uscita fissa: 1280x720, 30 fps. Tutto gira sul tuo PC: nessuna rete,
nessun account, nessuna telemetria.

Nota: quando ENS Camera e' chiusa, negli altri programmi la camera
mostra "ENS Camera in pausa". Per vedere te stesso lascia il programma
aperto (chiudendo la finestra resta nell'area di notifica;
"Esci" dal menu la chiude davvero).

Se la stanza e' buia la webcam scende spesso a 15 fps: e' un limite
della webcam, non del programma.


Lenti
-----
Le lenti sono cartelle dentro "lenses". Ognuna ha un file lens.ini e
delle immagini PNG:

lenses\
  mialente\
    lens.ini
    potato.png     la patata (obbligatoria)
    cappello.png   un livello extra (facoltativo)
    mantello.png   un altro livello extra (facoltativo)
    thumb.png      anteprima nella griglia (facoltativa)

Tutti i PNG di una lente devono avere la stessa tela (stessa larghezza
e altezza), con sfondo trasparente.

Esempio di lens.ini:

[lens]
name=Mia lente
order=20
[potato]
image=potato.png
center=512,610
width=640
left_eye=417,580
right_eye=607,580
mouth=512,790
eye_scale=1.0
mouth_scale=1.0
[layers]
1=cappello.png:above
2=mantello.png:below

[lens]
  name         Nome mostrato nella griglia
  order        Posizione nella griglia (numero piu' basso = prima)
[potato]
  image        PNG della patata
  center       Centro della patata sulla tela (x,y in pixel)
  width        Larghezza della patata sulla tela, in pixel
  left_eye     Occhio a sinistra NELL'IMMAGINE (x,y)
  right_eye    Occhio a destra NELL'IMMAGINE (x,y)
  mouth        Bocca (x,y)
  eye_scale    Ingrandimento degli occhi (facoltativo, default 1.0)
  mouth_scale  Ingrandimento della bocca (facoltativo, default 1.0)
[layers]
  N=file.png:above   disegnato sopra la patata
  N=file.png:below   disegnato dietro la patata
  I livelli si disegnano nell'ordine delle righe del file: il numero N
  e' solo un nome e non cambia l'ordine.

Le coordinate sono in pixel della tela. left_eye e' l'occhio a sinistra
nell'immagine (non quello sinistro della persona).

Dopo aver aggiunto una cartella riavvia ENS Camera. Una lente con un
lens.ini sbagliato viene saltata e il motivo e' scritto nel registro.


Comandi da riga di comando
--------------------------
ENSCamera.exe --install     Installa la camera virtuale (chiede UAC)
ENSCamera.exe --uninstall   La rimuove (chiede UAC)
ENSCamera.exe --status      Dice se e' installata (senza permessi)
ENSCamera.exe --selftest    Prova la webcam per 5 secondi e mostra
                            fps, ms per fotogramma e CPU

Dal Prompt dei comandi, per vedere %errorlevel% usa:
  start /wait ENSCamera.exe --selftest
Senza "start /wait" il Prompt non aspetta la fine del programma.


Disinstallazione
----------------
Dalla cartella di ENS Camera esegui:
  ENSCamera.exe --uninstall
Poi puoi cancellare la cartella di ENS Camera.
Le impostazioni sono in HKEY_CURRENT_USER\Software\ENS\Camera.
Il registro e' in %LOCALAPPDATA%\ENS\Camera\log.txt.


Requisiti
---------
Solo Windows 11 x64 (la camera virtuale usa le API di Windows 11).
Serve una webcam. L'installazione chiede i permessi di amministratore
una volta; l'uso normale no.


Licenze
-------
I modelli per riconoscere il volto (cartella models) derivano dai
modelli MediaPipe di Google, licenza Apache 2.0:
  models\LICENSE-APACHE-2.0.txt   (note in models\README.md)
ONNX Runtime, Copyright Microsoft Corporation, licenza MIT:
  LICENSE-onnxruntime.txt e ThirdPartyNotices-onnxruntime.txt
Le lenti sono illustrazioni originali di questo progetto.

L'eseguibile non e' firmato digitalmente.
