Newsgroup: it.comp.lang.javascript
Titolo: [forse OT] acquisizione firma

Ciao a tutti,
� possibile attraverso un applicazione web e presumibilmente l'utizzo di
una "Canvas" e del JS adhoc, permettere l'acquisizione di una firma (usando
una penna ottica ad es...) digitalizzarla e inviarla al server in un
formato che alla fine sia una jpeg?

Ugo ha scritto:

Molto probabilmente lo puoi fare solo con Java oppure (orrore!) ActiveX. 
Con JavaScript sicuramente no.
Enrico

Ugo wrote:

Si, usando il metodo "toDataUrl()" dell'oggetto canvas. In alcuni
browser accetta come parametro anche il "image/jpeg"; altrimenti,
di suo, ottieni una PNG. Se la PNG non ti va bene come formato, �
necessario convertirla server side.
Ovviamente IE non supporta l'elemento canvas, ma mi auguro che tu
questo l'abbia gi� preso in considerazione. Se necessiti anche di
supportare IE, ti consiglio di usare Flash e tagliare la testa al
toro.
-- 
"When you have eliminated the impossible, whatever remains, however
improbable, must be the truth."

 Con JavaScript sicuramente no.
Come no, e che ci vuole? Un paio di eventi mouse, una raffica di
piccole img, l'invio di un array di coordinate ed una servlet che lo
trasforma in bitmap.
Lo faccio io, e pure cross-browser... quanto mi date? :-)))
--
enos76

 Lo faccio io, e pure cross-browser... quanto mi date? :-)))
In effetti non � la migliore delle soluzioni ma potrebbe funzionare... 
non ci ho mica pensato (eh il caldo :-P).
Per piccole img tu intendi tanti piccoli tag img? A questo punto non � 
necessario neanche usare delle immagini, basta usare gli attributi di 
stile...
Enrico

 stile...
Giustissimo, non ci avevo mica pensato... eh il caldo :-)
Ciao
--
Enos

 Giustissimo, non ci avevo mica pensato... eh il caldo :-)
Wow, un altro paio di messaggi cos� e chiss� che cosa possiamo 
sviluppare :-P
Enrico

 Lo faccio io, e pure cross-browser... quanto mi date? :-)))
Spero fosse ironico l'approccio consigliato.. :)
Perch� altrimenti, incomincio a domandarmi dove tu stia imparando lo 
sviluppo web: come l'altra volta, questo � un approccio "so 90s" :)
Era l'epoca delle applet Java e dei loro casini, di Flash che doveva
essere obbligatoriamente scaricato in quanto plug-in poco diffuso (e
tra l'altro era abbastanza uno schifo), e via dicendo.
Usare il "DHTML" era forse l'unica strada fattibile, nonostante vari
problemi.
E prima che qualcuno lo prenda seriamente: considera che una persona
che firma, generalmente, ha dei movimenti secchi e veloci. Se usando
canvas/flash o quant'altro, ti basta avere le coordinate del mouse e
poi dire alle API "disegnami una linea da qui a qui" se usi dei nodi
hai bisogno di creare un nodo - che rappresenta un pixel - per tutti
i singoli pixel intermedi tra due coordinate.
E questo lo devi fare mentre l'utente sta continuando a "firmare".
Tra l'altro non sono sicuro che tutti i browser, che girano anche su
macchine non esattamente "entry level", riescano a stargli dietro in
modo efficace.
Considera poi che pi� il DOM � zeppo di nodi, pi� il browser fatica.
Quindi inserire nodi successivi ai primi, � pi� dispendioso. E se si
raggiunge anche la "massa critica" diventa palese anche all'occhio.
Per ridurre questo rischio, sarebbe bene usare un documento nuovo, e
quindi vuoto: una popup, o un'iframe. Questo dovrebbe migliorare non
di poco le performance - soprattutto se la pagina ha gi� un document
tree affollato di suo. Inoltre ,si potrebbe diminuire la granularit�
della firma - accettare qualche "vuoto", aumentare la dimensione dei
nodi, in modo che ne servano meno (anche se l'immagine risulter� pi�
"spixellosa").
In questo modo si dovrebbe avere un buon compromesso.
Ma il risultato non sar� mai simile, in termini di UX, resa grafica,
e di performance, a qualcosa fatto usando canvas o Flash.
Per non parlare del codice client, e soprattutto server, necessario.


 non dicevo che era l'approccio ideale, solo che era possibile.
E difatti hai fatto benissimo. Dire che non si pu� fare in javascript,
� sbagliato e meritava una doverosa correzione.
Ma bisognerebbe anche sottolineare che, sebbene fattibile, non sia del
tutto consigliabile.
Tante cose si possono fare, e tante cose si facevano dieci anni fa, su
web, che adesso non ci sogneremmo mai di fare. :)


 ....
grazie � stato molto utile e interessante la tua risposta, e le relative
scoperte che ho fatto partendo da questa base...
peccato che poi appena ho fatto presente che questa cosa non avrebbe avuto
alcun valore legale, si sono informati meglio e scoprendo che
effettivamente era come dicevo io, mi � saltato il lavoro  :)