Página 1 de 1

Leer Imagenes desde CamaraWeb

Publicado: Mar Jul 31, 2007 1:08 am
por Martin del Angel[1]
Hola a todos !
Estoy tratando de implementar en un programa la lectura de Imagenes desde
una Camara Web y tengo cierto avanze.
Deseo Capturar la imagen en linea desde una camara web y capturar la Imagen
(Foto) y grabarla en un campo de la base de datos.
1. Inicializo la camara web sin problema y muestro el Video en un control
TImage, hasta aqui todo esta bien
2. Capturar el Frame ( Imagen) y crear un Imagen , pero me marca error
METHOD TomarFoto( oSender ) CLASS TForm1
Local temp
If ::startcap
SendMessage(::hwdc, WM_CAP_GET_FRAME,0,0)
::oImage1:oPicture:CreateIndirect(1,::hwdc) <============marca error
IF ::oImage1:oPicture:Ispicture()
MSGINFO('SI TIENE UNA IMGEN VALIDA')
ELSE
MSGINFO('NO TIENE UNA IMAGEN VALIDA')
ENDIF
Endif
RETURN Nil
Gracias

Leer Imagenes desde CamaraWeb

Publicado: Mar Jul 31, 2007 2:57 am
por Martin del Angel[1]
Se me olvido el proyecto , disculpas...
"Martin del Angel" <martindelangel@msn.com> wrote in message
news:[email=46ae6ea7@ozsrv2.ozlan.local...]46ae6ea7@ozsrv2.ozlan.local...[/email]
> Hola a todos !
>
> Estoy tratando de implementar en un programa la lectura de Imagenes desde
> una Camara Web y tengo cierto avanze.
>
> Deseo Capturar la imagen en linea desde una camara web y capturar la
> Imagen
> (Foto) y grabarla en un campo de la base de datos.
>
> 1. Inicializo la camara web sin problema y muestro el Video en un control
> TImage, hasta aqui todo esta bien
>
> 2. Capturar el Frame ( Imagen) y crear un Imagen , pero me marca error
>
> METHOD TomarFoto( oSender ) CLASS TForm1
> Local temp
> If ::startcap
> SendMessage(::hwdc, WM_CAP_GET_FRAME,0,0)
> ::oImage1:oPicture:CreateIndirect(1,::hwdc) <============marca error
>
> IF ::oImage1:oPicture:Ispicture()
> MSGINFO('SI TIENE UNA IMGEN VALIDA')
> ELSE
> MSGINFO('NO TIENE UNA IMAGEN VALIDA')
> ENDIF
>
>
> Endif
> RETURN Nil
>
>
> Gracias
>
>
>


Attached files CamaraWeb.zip (2.3 KB)Â

Leer Imagenes desde CamaraWeb

Publicado: Mar Jul 31, 2007 3:01 am
por jlalin
Martin,
> METHOD TomarFoto( oSender ) CLASS TForm1
> Local temp
> If ::startcap
> SendMessage(::hwdc, WM_CAP_GET_FRAME,0,0)
> ::oImage1:oPicture:CreateIndirect(1,::hwdc) <============marca error
Hace mucho tiempo que no toco este tema, pero antes de CreateIndirect()
creo que deberí­as obtener la imagen de la captura:
SendMessage( ::hwnd, WM_CAP_COPY ... )
Luego intenta obtener el manejador del bitmap que está en el clipboard:
WITH OBJECT TClipboard():New( oForm )
hBitmap := :GetData( CF_BITMAP )
END
IF ! Empty( hBitmap )
::oImage1:oPicture:CreateIndirect( 1, hBitmap )
ENDIF
Estoy hablando de memoria pero creo que por ahí­ van los tiros.
Saludos,
José Lalí­n

Leer Imagenes desde CamaraWeb

Publicado: Mar Jul 31, 2007 7:04 am
por Martin del Angel[1]
José
Ya lo hice como dices , pero ahora sale este error
Te adjunto el proyecto
Date: 07/30/07
Time: 23:54:15
Available Memory: 334692
Current Area: 1
---------------------------- Compiler
Information -----------------------------
Xailer Version: Xailer 1.5.6 Version 1.5
Compiler: xHarbour build 0.99.61 Intl. (SimpLex) PCode Version: 7
C/C++ Compiler: Borland C++ 5.5.1
Windows Platform: Windows XP Professional 5.01.2600 Service Pack 2
--------------------- Internal Error Handling
Information ---------------------
Subsystem Call: BASE
System Code: 1004
Default Status: .F.
Description: Class: 'NIL' has no exported method
Operation: CREATEINDIRECT
Arguments: [ 1] = Type: N Val: 1 [ 2] = Type: N
Val: -670757866
Involved File:
Dos Error Code: 0
Trace Through:
TFORM1:TOMARFOTO (83)
TBTNBMP:ONCLICK (0)
TBTNBMP:CLICK (99)
(b)XCONTROL:XCONTROL (140)
TBTNBMP:COMMAND (0)
TSCROLLINGWINCONTROL:WMCOMMAND (253)
TFORM1:WMCOMMAND (885)
RUNFORM (0)
TAPPLICATION:RUN (209)
MAIN (15)
Gracias y Saludos....
"José Lalín" <dezac@corevia.com> wrote in message
news:46ae8a0d$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>
> Martin,
>
>> METHOD TomarFoto( oSender ) CLASS TForm1
>> Local temp
>> If ::startcap
>> SendMessage(::hwdc, WM_CAP_GET_FRAME,0,0)
>> ::oImage1:oPicture:CreateIndirect(1,::hwdc) <============marca error
>
> Hace mucho tiempo que no toco este tema, pero antes de CreateIndirect()
> creo que deberías obtener la imagen de la captura:
>
> SendMessage( ::hwnd, WM_CAP_COPY ... )
>
> Luego intenta obtener el manejador del bitmap que está en el clipboard:
>
> WITH OBJECT TClipboard():New( oForm )
> hBitmap := :GetData( CF_BITMAP )
> END
>
> IF ! Empty( hBitmap )
> ::oImage1:oPicture:CreateIndirect( 1, hBitmap )
> ENDIF
>
> Estoy hablando de memoria pero creo que por ahí van los tiros.
>
> Saludos,
> José Lalín


Attached files CamaraWeb.zip (2.4 KB)Â

Leer Imagenes desde CamaraWeb

Publicado: Mar Jul 31, 2007 10:47 am
por jfgimenez
Martín,
en vez de:
::oImage1:oPicture:CreateIndirect( 1, hBitmap )
pon esto:
::oImage1:oPicture :=: TPicture():CreateIndirect( 1, hBitmap )
Y por supuesto elimina esta línea:
::oImage1:oPicture:=hBitmap
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info

Leer Imagenes desde CamaraWeb

Publicado: Mar Jul 31, 2007 6:29 pm
por Martin del Angel[1]
GRacias , ya funciono ....
una cosita mas
me podrias ayudar con el post que dice "Es Complicado?"
Saludos
"Jose F. Gimenez" <jfgimenez@wanadoo.es> wrote in message
news:46aef743$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Martín,
>
> en vez de:
>
> ::oImage1:oPicture:CreateIndirect( 1, hBitmap )
>
> pon esto:
>
> ::oImage1:oPicture :=: TPicture():CreateIndirect( 1, hBitmap )
>
>
> Y por supuesto elimina esta línea:
>
> ::oImage1:oPicture:=hBitmap
>
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
> http://www.xailer.info
>