Nuevo aporte: PRG para tomar fotos con cámara web (y consulta sobre ese aporte)

1,413 views
Skip to first unread message

Elides Paredes

unread,
May 23, 2015, 11:24:19 AM5/23/15
to publice...@googlegroups.com
Estimados amigos

Encontré un programa que anexo (PRG) que permite ver  y tomar una fotografía (con la cámara web) sin driver adicionales,OCX, ni nada especial es realmente muy bueno. Lo corro y funciona perfecto.
 
Además de compartirlo para que otros se beneficien de ese trabajo, en el programa (PRG) está la dirección de donde lo baje pero por las dudas de algunos es http://jgohortiz.blogspot.com/2014/04/foxpro-webcam-tomar-fotografia-y.html.

Ahora lo que solicito a los maestros de éste foro es que me ayuden a entenderlo. Lo ideal sería (Creo) que le colocaran al PRG los comentarios necesarios para entender los métodos empleados y reenviarlo, pero acepto cualquier recomendación o sugerencia que tengan a bien suministrar,

Traté de convertirlo en un formulario para agregarlo o llamarlo desde otro y no pude hacerlo. (como siempre lo intenté muchas veces antes de pedir ayuda), y no pude porque tengo muchas dudas. Por ejemplo.

Donde se muestra la imagen?, en el contenedor? no hay control OLE ni control image. 
¿como agrego la función que está al final en un fromulario?  FUNCTION buf2dword(lcBuffer) , intenté como procedimiento pero me debe faltar algo porque no funciona.

De verdad confieso que no consigo donde estudiar éstos temas ni libros, ni ningún  otro medio para entender y lograr mis objetivos, (en este caso quiero tomar una foto con la cámara web a las facturas, porque me parece que es mejor en cierta forma que escanearla. La razón es que el escaner tiene partes mecánicas que se desgastan y eso le restaría vida. 

¿qué es mas fácil o mejor, llamarlo como formulario o como una clase?

De antemano gracias a quienes siempre comparten su conocimiento, lo que para mi es lo mas valioso en la vida.

Elides Paredes
Barquisimeto Venezuela

webcam._zip

Luis Maria Guayan

unread,
May 23, 2015, 11:47:14 AM5/23/15
to publice...@googlegroups.com
Y cual es el aporte? ... aporte de trabajo para los demás :D

Por fin es sábado :-P

Luis María Guayán
Tucumán, Argentina
_______________________________
Comunidad Visual FoxPro en Español
http://comunidadvfp.blogspot.com

Douglas Sánchez

unread,
May 23, 2015, 12:28:33 PM5/23/15
to publice...@googlegroups.com
Hola

esto es lo que deseas hacer.


SET PROCEDURE TO webcam.pg

tf = CREATEOBJECT("frmphotocapture","c:\temp", "prueba"+SYS(2015)+".jpg", 1024, 768, _screen, "tag")
tf.Visible = .T.

listo.

Saludes

Dsanchez





Elides Paredes

unread,
May 23, 2015, 1:45:18 PM5/23/15
to publice...@googlegroups.com, elides...@gmail.com

Estimado señor Luis María Guayan.

Mis respetos.

Desde el principio dije: aporto algo que encontré en Internet. incluso doy la dirección donde lo encontré. Porque, el aporte es para personas como yo, que puedan beneficiarse también de algo que otra persona logró. Aunque no sea mi creación. Y dentro del PRG que anexé   también coloqué de nuevo la dirección o link. Porque comprendo que hay que conservar los derechos.

Lo hice con la intención de ayudar. Discúlpeme si no supe expresarlo de otra forma. Cuando he consultado el tema en Internet conseguí muchas respuestas - pero a mi -   ninguna me había funcionado. Y al encontrarla, me alegré mucho, estuve una semana leyéndola a ver si logro entenderla bien, para convertirla en una clase o un formulario que me permita adaptarla a mis necesidades y no he podido. De verdad siempre hago mil intentos antes de consultar. 

Por ese motivo solicité la ayuda. Incluso escribí:

De antemano gracias a quienes siempre comparten su conocimiento, lo que para mi es lo mas valioso en la vida.

Y eso, precisamente, fue lo que hice compartir el conocimiento aunque no fuese propio. Y si de alguien he aprendido y por quien he logrado hacer muchas cosas, es precisamente de usted. Y cuando comparto algo nunca me adjudico la autoría si no es mía.

Nuevamente le pido disculpas porque usted es la persona que mas admiro de todos, sin querer comparar porque ésto está a mi juicio lleno de genios. A quienes admiro y respeto muchísimo





Elides Paredes
Barquisimeto Venezuela

Elides Paredes

unread,
May 23, 2015, 1:57:49 PM5/23/15
to publice...@googlegroups.com, elides...@gmail.com

Estimado amigo, 

 
DSANCHEZ,

 Muchas gracias por la respuesta que representa una buena solución, aunque mi mayor interés es entender como  funciona.
Por ejemplo tiene una función  ZorderSet que no está documentada EN LA AYUDA  y luego de buscar mucho en Internet, la mejor explicación la encontré en el foro de Fernando dBozzo-

Pero tu solución es también muy útil, MUCHAS GRACIAS.

Voy a trabajar de inmediato con eso.
 


Elides Paredes
Barquisimeto Venezuela

Douglas Sánchez

unread,
May 23, 2015, 2:45:08 PM5/23/15
to publice...@googlegroups.com
Excelente Elides

Al rato cuando la tengas lista la solución la compartes por acá apuesto que a muchos le servirá.

Saludes

DSánchez

Elides Paredes

unread,
May 23, 2015, 3:09:29 PM5/23/15
to publice...@googlegroups.com, elides...@gmail.com
Pues.. Estoy 'peleando' con ella aún. No he podido implementar bien tu solución. Al parecer corre el PRG, (presenta creo que por menos de un segundo el formulario), pero prácticamente se ve como una silueta, sin embargo no lo muestra, el formulario que lo llama no es modal ni esta always on top. No se que pasa. Pero ahí sigo.

Gracias por estar pendiente. Pero es lo que dije no entiendo bien como trabaja el PRG 


Elides Paredes
Barquisimeto Venezuela

HernanCano

unread,
May 23, 2015, 4:46:06 PM5/23/15
to publice...@googlegroups.com, elides...@gmail.com
Elides:

Ejecuté cuatro veces el formulario y funciona como debiera.

Elides Paredes

unread,
May 23, 2015, 4:52:41 PM5/23/15
to publice...@googlegroups.com, elides...@gmail.com
Lo que necesito mas concretamente es utilizar en un formulario que carga facturas, el nombre del proveedor y número de factura para guardar una imagen de cada factura. Aún no se que tan práctico sea, (ahora utilizo un botón que llama al escaner)- Pero quiero probar, algunas facturas quizás por el color o l tamaño, puede que no resulte (que no se vea bien)
 
Por ese motivo solicito ayuda a los expertos y también porque tiene funciones difíciles de comprender para mi-

Carlos MauricioTorres Suárez

unread,
May 23, 2015, 5:07:16 PM5/23/15
to publice...@googlegroups.com, elides...@gmail.com
Nos descargamos el programa y en nuestra HP funciona bien pero el rato de capturar la image sale MESSAGEBOX("No hay imagen").

Qué podrá pasar????

Gracias, Saludos

Víctor Hugo Espínola Domínguez

unread,
May 23, 2015, 7:09:17 PM5/23/15
to publice...@googlegroups.com
Hola Elides

No es necesario convertir a scx para que lo puedas llamar desde un formulario. Tampoco debes preocuparte por usar código inentendible, todos lo hacemos ya sea por imcompetencia o falta de tiempo para estudiarlo. El lema es "No reinventar la rueda".

En el INIT del formulario de facturas:
If Not ( "webcam" $ Lower( Set( "Path" ) ) )
    Set Procedure To ..\webcam\webcam.prg Additive
Endif

En el CLICK del botón de tomar foto:
loFrmPhotoCapture = Createobject("frmphotocapture","c:\temp", "prueba" + Sys(2015) + ".jpg", 150, 200, _Screen, "tag")
loFrmPhotoCapture.Show(1)         && El parámetro 1 es para que el formulario de captura d fotos sea modal

El código resaltado lo cambias a tu gusto.

Lo que hagas posteriormente ya depende de como guardarás la foto en la tabla.

Saludos,
Víctor.
Lambaré - Paraguay.

Elides Paredes

unread,
May 23, 2015, 8:05:49 PM5/23/15
to publice...@googlegroups.com, elides...@gmail.com
Mil gracias Amigo Víctor..!! Funcionó..!!
 
 Y lo mejor es que me quitas un enorme peso de encima, porque me siento culpable de utilizar un código que no entiendo aunque igual me queda la inquietud, 
Pero es muy cierto, también cuando use por ejemplo el código del sensei LuisMa.. para enviar correos no entendía nada. Pero he logrado incluso algunos pequeños cambios, (pero después de mucho tiempo)
Así que gracias por la solución y por el comentario muy acertado.

Elides Paredes
Barquisimeto Venezuela

Elides Paredes

unread,
May 23, 2015, 8:18:15 PM5/23/15
to publice...@googlegroups.com, elides...@gmail.com


Amigo Carlos una vez que le das al botón Capturar el programa se cierra y guarda la imagen capturada en la carpeta c:\temp o según le indiques en el programa que es fácilmente modificable, de hecho yo lo cambié así. Gracias a la solución de Victor, (muy acertada.)
en un botón dentro de un formulario en el evento click

loFrmPhotoCapture = Createobject("frmphotocapture","C:\Aqui", "prueba" + Sys(2015) + ".jpg", 150, 200, _Screen, "tag")
loFrmPhotoCapture.Show(1)         && El parámetro 1 es para que el formulario de captura d fotos sea modal

y en el Init del Formulario solo agregué;

If Not ( "webcam" $ Lower( Set( "Path" ) ) ) && Original

   Set Procedure To "C:\administracion\Camara web\webcam.prg "  Additive

ENDIF

 Y hace todo lo que quiero, Prueba y creo que no te dará problemas, por ese motivo quise compartirlo, porque a mi, a diferencia de otras soluciones, no me dio ningún problema.

 

Elides Paredes
Barquisimeto Venezuela

Elides Paredes

unread,
May 23, 2015, 8:24:26 PM5/23/15
to publice...@googlegroups.com, elides...@gmail.com
Amigo Douglas Sánchez

Me funcionó perfecto con lo que me presentó el amigo Victor Hugo... Un genio..!!!

Es lo que le comenté a Carlos Torres 
Espero que le sirva a muchas personas. 
Al final creo que es el propósito fundamental de éste foro.

Con esas pequeñas líneas que Victor Hugo colocó, sencillamente me cambió la vida. Y me ahorró mucho trabajo, pero como le dije a él, me queda la inquietud de entender porque sencillamente no puedo pasarlo por alto, el problema es que es sencillo pero da muchas vueltas.. jajaja.. 

saludos




Elides Paredes
Barquisimeto Venezuela

Edwin Duran

unread,
Jun 3, 2015, 1:50:11 PM6/3/15
to publice...@googlegroups.com, elides...@gmail.com
Saludos Elides

no se si es mi equipo, pero cuando cambio el tamaño a 846x1200 el programa da error.

Elides Paredes

unread,
Jun 5, 2015, 10:59:31 AM6/5/15
to publice...@googlegroups.com, elides...@gmail.com
Amigo Edwin Duran
No se la causa precisa, pero en principio creo que debes usar una resolución estándar, que acepte el monitor registrado en el sistema, por ejemplo, puedo ponerle 1024 x 768, pero no admite 1024 x 700, en otras palabras solo acepta los tamaños ya predeterminados en el sistema operativo.

Pero, solo estoy suponiendo, como puedes ver en mi planteamiento solicito ayuda porque eso prácticamente no es VFP, es mas acceso a Windows, algo que a mis neuronas les cuesta mas para procesar..jajajaja

Saludos
 
Elides Paredes
Barquisimeto Venezuela

Ariel Lopez

unread,
Mar 1, 2017, 10:41:35 AM3/1/17
to Comunidad de Visual Foxpro en Español
Buenísimo el aporte realmente, lo estoy aplicando y agregando cosas que me han funcionado muy muy bien... en cambio me sorprendió como respondió el sr. Luis Maria, no me esperé tal respuesta, siempre lo consideré una persona respetuosa y correcta. En fin...

Mik

unread,
Mar 1, 2017, 12:38:10 PM3/1/17
to Comunidad de Visual Foxpro en Español
Excelente aporte, me funciona en mi laptop Lenovo X1. 

Muchas gracias.

Saludos

Miguel Herbias
Lima - Peru

tfcjua...@gmail.com

unread,
Mar 1, 2017, 12:47:16 PM3/1/17
to Comunidad de Visual Foxpro en Español
Creo que deberían verle el lado gracioso del comentario y por la forma que lo puso xD, 

Luis Maria Guayan

unread,
Mar 2, 2017, 8:41:39 AM3/2/17
to publice...@googlegroups.com

:-O mensaje de hace casi 2 años !!! que hice yo en ese entonces? Era muy pequeño, no lo recuerdo ;-)


Luis María Guayán
Tucumán, Argentina
_______________________________
Comunidad Visual FoxPro en Español
http://comunidadvfp.blogspot.com

El 01/03/17 a las 12:41, Ariel Lopez escribió:

Carlos Hidalgo

unread,
Mar 2, 2017, 8:47:36 AM3/2/17
to publice...@googlegroups.com
😂
jajajajaja
Reply all
Reply to author
Forward
0 new messages