Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   FireMonkey (https://www.clubdelphi.com/foros/forumdisplay.php?f=50)
-   -   capturar firma en la pantalla de un tablet (https://www.clubdelphi.com/foros/showthread.php?t=94409)

juank1971 27-01-2020 18:21:52

capturar firma en la pantalla de un tablet
 
Hola amigos pudieran decirme como puedo capturar en firemonkey la firma de los clientes, me refiero a que firmen en la pantalla de un tablet.


tengo delphi 10.2 tokyo.



saludos juank

Neftali [Germán.Estévez] 28-01-2020 15:23:12

Has explicado el problema, pero has concretado poco en lo que necesitas.
Es una pregunta muy amplia y tal vez deberías especificar qué necesitas. De otra forma en la respuesta no podemos concretar mucho.


Deberías poder utilizar un Canvas de forma similar a como se usa en programas Windows.
Algunos links que tal vez te sirvan:








juank1971 28-01-2020 16:16:30

Si gracias Neftali, tu como siempre ayudando a todos con tus conocimientos

hace no se ni cuantos años me estas aclarando dudas , jj:)jj, a veces creo que ya nos estamos poniendo viejos
gracias^\||/.


Ya había mirado esos videos y si, es correcto es eso mismo lo que necesito,
pero mira explico un poco más.

Es un sistema de recepción de un hotel, ya hay un sistema en Windows que escanea el pasaporte , y tiene todos los demás datos, solo falta que el cliente escriba algunos pocos más , ciudad, población donde vive, la ciudad , correo si lo desea etc, además de la firma fisica , esto actualmente se hace en un papel, la idea es sustituir esos datos que falta por llenar por el cliente con un Tablet donde el teclea los datos personales que falta que no están en el pasaporte y luego firma para posteriormente actualizar el sistema en Windows con los datos restantes.

Ya tengo eso funcionando, hice una aplicación firemonkey para los tables que se conectan a la base de datos sql server con un servidor REST, los datos los cargo a la Tablet desde el REST en formato JSON y cuando el cliente actualiza hago el proceso inverso haciendo los updates al servidor todo funciona bien.

Pedí aquí lo de la firma, porque en esos videos que he visto y probado si funcionan y realmente se puede hacer una firma, pero si has probado algo de esto y miras bien la pantalla te das cuenta que estos ejemplos en Delphi, la firma final no queda de buena calidad, el trazo es muy áspero y no logro verla como debiera quedar una aplicación de esa envergadura, ya que es vista por muchos clientes y debe verse mas cerna a la realidad o imitar mas el papel, ya he visto varias apk en java y otros lenguajes que digamos según la velocidad del lapiz hacen mas fino el trazo y además el trazo queda si lo detallas bien con mas calidad como si tuvieran mucho mas resolución o algo asi.

De todas formas gracias por tu tiempo voy a seguir probando ahora a ver si logro mejorarla en ese aspecto voy a jugar un poco con la velocidad del movimiento a ver que logro, no se si me entiendes lo que quiero por ejemplo cuando terminas una firma en un papel que mueves más rápido el bolígrafo al terminarla, debiera quedar el final del trazo como si fuera la punta de una aguja o algo mas cónico.


Neftali [Germán.Estévez] 28-01-2020 16:30:10

No los he utilizado nunca, pero tal vez puedas revisar dispositivos de este estilo; Lápices Capacitivos.

juank1971 28-01-2020 16:39:02

si ya tengo ese lapiz o parecido y lo que sucede es la aplicacion no importa con lo que lo hagas el trazo hasta con el dedo funciona o con el lapiz el trazo es el mismo , con el lapiz queda mas cercano a la firma real en cuanto a curvas ,pero el trazo sigue siendo muy tozco, tengo que trabajar evidendemente con el delphi no me queda de otra, voy a ver como logro mejorar eso , voy a tratar de trabajar mas profundo en la resolucion del canvas, tambien en tratar de capturar la velocidad del trazo y tratar de afinar el pixel segun la velocidad de la mano.me compredes.

Neftali [Germán.Estévez] 28-01-2020 17:15:42

Tal vez deberías revisar temas de "Antialiasing". Al final la resolución de la pantalla es la que es.
Otra cosa es hacerle ver al usuario algo diferente.
Revisa esta entrada del blog a ver si explica lo que quiero decir.


Explicado visualmente:



juank1971 28-01-2020 17:37:59

ok gracias sigo intentando

Casimiro Notevi 28-01-2020 18:32:36

Dibuja con el "lápiz" más fino, por ejemplo, 3 pixeles:



juank1971 28-01-2020 18:48:01

estoy probando eso con el thickness pero sigo sin poder alcanzar el desempeño de esta apk por ejmplo
"Digital Signature E Signature_v9.6.com" que es para hacer firmas en android,


y la ejecuto en el mimso tablet y con esa misma resolucion que tengo y con esa envidiable apk, se puede lograr el efecto que quiero, que es diferentes gruezos en el trazo segun la velocidad de la mano y sin el diente de sierra. se ve la firma perfecta.



off realmente se hace un poco dificil a veces alguna idea en el mundo delphi . jjj gracias sigo intentando :p

juank1971 28-01-2020 19:48:08

Aunque me sigue quedando la duda neftali y tu comentario anterior

porque en el canvas con delphi con los ejemplos de crear una firma que he realizado que son esos de internet con los videos que me diste me sigue quedando

el diente de sierra en los trazos no importa el grosor, si al final una de las cosas mas poderosas que debiera tener firemonkey era la parte grafica.

Casimiro Notevi 28-01-2020 19:50:45

Ten en cuenta que muchos programas hacen un tratamiento de la imagen, por ejemplo con un desenfoque gaussiano suave.

Este ejemplo es una captura de una tablet de 6" de las más malas (costó 47 euros) que encontrabas en el mercado hace 8 años. el grosor es de 3 pixeles, y está hecha con el dedo.


juank1971 28-01-2020 19:54:20

tienes algun ejemplo de como hacerlo de esa manera

Casimiro Notevi 28-01-2020 20:19:02

Cita:

Empezado por juank1971 (Mensaje 535419)
tienes algun ejemplo de como hacerlo de esa manera

Para android no utilizo delphi porque cuando empecé a desarrollar para android, el delphi todavía no tenía nada para android.
Así que estuve buscando otras alternativas.
De todas formas, está pintado en un canvas normal y corriente de un panel, no tiene nada más.
En el evento "touch" se mira la posición 'x' e 'y' y se pinta una línea entre el punto anterior y el nuevo.


Código:

SD.Canvas = CanvasFirma
SD.Panel = pnFirma
SD.SignatureColor = Colors.Blue
SD.SignatureWidth = 3dip

Código:

Sub Panel_Touch(SD As SignatureData, x As Int,y As Int, Action As Int)
  If Action = 0 Then
      px = x
      py = y
  Else
      SD.Canvas.DrawLine(px, py, x, y, SD.SignatureColor, SD.SignatureWidth)
      SD.Panel.Invalidate
      px = x
      py = y
  End If
End Sub

Cuando guardas la imagen, si quieres, puedes procesarla un poco con un filtro de desenfoque "fino" para que no se muestren los dientes de sierra, aunque no creo que haga falta con la gran resolución de las pantallas actuales.

Neftali [Germán.Estévez] 29-01-2020 09:29:30

Cita:

Empezado por juank1971 (Mensaje 535417)
el diente de sierra en los trazos no importa el grosor, si al final una de las cosas mas poderosas que debiera tener firemonkey era la parte grafica.

Cita:

Empezado por Casimiro Notevi (Mensaje 535418)
Ten en cuenta que muchos programas hacen un tratamiento de la imagen, por ejemplo con un desenfoque gaussiano suave.

A eso me refería con el tema del "antialiasinng".
Puedes aplicarlo una vez tengas la imagen completada y la diferencia es evidente.

juank1971 01-02-2020 20:46:34

Miren esta es la captura hecha en delphi y en otra apk
https://photos.shutterfly.com/full/84980618679


la blanca esta hecha en una apk en java y la de delphi es la amarilla de abajo esta hecha siguiendo este tutorial de youtube

https://www.youtube.com/watch?v=0NYIKcsM0HM

Código Delphi [-]
// esta linea es la que dibuja 
Path1.Data.LineTo(TPointF.Create(X, Y));

al parecer las apk de dibijo hechas en java creo que no dibujan una linea sino una secuencia de circulos ,

Casimiro Notevi 01-02-2020 21:48:50

No se puede ver:



juank1971 01-02-2020 22:04:13

https://ibb.co/ZKhrNLG

juank1971 01-02-2020 22:05:38

no se como tu puedes pegar una imajen en un post en este foro

juank1971 01-02-2020 22:07:21

creo que la idea buena para hacer la firma es hacerlo con circulos pero no logro hacerlo todavia con el canvas queda feo



esta es la apk que lo hace perfecto creo que esta hecha en java
https://apkpure.com/digital-signatur...gitalsignature

Casimiro Notevi 01-02-2020 22:31:45

Tomas en enlace a la foto, pulsas en el icono de arriba y la añades.
O la pones entre las etiquetas [img] httt:/rutacompleta.alaimagen.jpg[/img]




La franja horaria es GMT +2. Ahora son las 13:12:01.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi