Jump to content
Fivewin Brasil

WebCam


alex2002

Recommended Posts

/*------------------------------------------------------------------------------*/
*        Archivo: WebCam.PRG                                                    *
*    Descripcion: WebCam                                                        *
*          Fecha: Diciembre del 2010                                            *
*        Release: Ver 1.0                                                       *
*          Autor: Jose Javier LLoris Roig                                       *
*    Verion para: 32Bits                                                        *
*                                                                               *
*            Libreria: FWH/FWHX 8.12 28/December/2008                           *
*             Harbour: Harbour 1.0.1 Rev 9361 1999-2008                         *
*          Compilador: Borland C++ 5.5.1 versión 32bits                         *
*  Editor de Recursos: WorkShop 4.5 y ResEdit                                   *
*       Gestor de B.D: A.D.A ( Advantage Data Architect )                       *
*                 S.O: Windows XP / Windows 7                                   *
/*------------------------------------------------------------------------------*/

#INCLUDE "Fivewin.ch"
#INCLUDE "WebCam.ch"

#DEFINE DT_CENTER  0x01

STATIC oWnd
STATIC oBar
STATIC oWebCam
STATIC lStop,lRet

**----------------------------------------------------------------------------*/
Function GetWebCam(oImg) //necessita para manter o focu da tela
**----------------------------------------------------------------------------*/
LOCAL oDlg

DEFINE DIALOG oDlg
ACTIVATE DIALOG oDlg ON INIT (ShowWindow( oDlg:hWnd,6),;
                              oDlg:Hide(),WndWebCam(oImg),oDlg:End())

Return lRet

**------------------------------------------------------------------------------*/
Static Function WndWebCam(oImg)
**------------------------------------------------------------------------------*/
LOCAL oCursor,oFont,oIco //,cFILE := "bmp\file.bmp"

lStop := .T.
lRet  := .F.

DEFINE ICON oIco RESOURCE "RC_IWEB"
DEFINE FONT oFont NAME "Tahoma" SIZE 0,-12
DEFINE CURSOR oCursor HAND


DEFINE WINDOW oWnd TITLE "Capturar Fotos";
       BORDER NONE NOMINIMIZE NOMAXIMIZE

oWnd:SetIcon(oIco)
oWnd:SetFont(oFont)

@ 60, 0 WEBCAM oWebCam SIZE 400, 400 OF oWnd ADJUST RATE 66
oWebCam:Initialize()
/* Incremento adicional por la adicion de la barra de botones */
/* y la barra de mensajes.                                    */
oWebCam:nIncrem := 130

DEFINE BUTTONBAR oBar _3D SIZE 75, 60 OF oWnd
DEFINE BUTTON RESOURCE "RC_WEBON";
       NOBORDER OF oBar;
       ACTION oWebCam:Initialize();
       TOOLTIP "Conectar a WebCam";
       FONT oFont;
       PROMPT "Conectar";
       WHEN !oWebCam:isConnected
/*
DEFINE BUTTON RESOURCE "RC_WEBG";
       NOBORDER OF oBar;
       ACTION (oWebCam:Clipboard(),;   //Copy
       oWebCam:SaveFile(cFILE),oImg:LoadBMP(cFILE)); //deu certo
       TOOLTIP "Capturar Imagem";
       FONT oFont;
       PROMPT "Capturar";
       WHEN oWebCam:isConnected
*/
DEFINE BUTTON RESOURCE "RC_FOTO";
       NOBORDER OF oBar;
       ACTION (oWebCam:Clipboard(),;   //Copy  ctrl+c
       oImg:LoadFromClipboard(),;     //paste ctrl+v
       oImg:LoadFromString(BmpToStr(oImg:hBitmap)),;
       oImg:Refresh());  //Paste
       TOOLTIP "Capturar Imagem";
       FONT oFont;
       PROMPT "Capturar";
       WHEN oWebCam:isConnected

       //oImag:CopyToClipboard()
       //classe Clipboard para text
       //oImg:LoadFromClipboard(), oImg:Refresh());  //Paste

DEFINE BUTTON RESOURCE "RC_WEBOF";
       NOBORDER OF oBar;
       ACTION oWebCam:Finalize();
       TOOLTIP "Desconectar a WebCam";
       FONT oFont;
       PROMPT "Desconectar";
       WHEN oWebCam:isConnected

DEFINE BUTTON RESOURCE "RC_WEBG";
       NOBORDER OF oBar;
       ACTION (lRet:=.T.,WebSair());
       TOOLTIP "Gravar e Sair";
       FONT oFont;
       PROMPT "Gravar";
       WHEN oWebCam:isClipboard

DEFINE BUTTON RESOURCE "RC_END";
       NOBORDER OF oBar;
       ACTION WebSair();
       TOOLTIP "Sair";
       FONT oFont;
       PROMPT "Sair"

AEval( oBar:aControls, { | o | o:oCursor := oCursor } )

oBar:bRClicked := {|| NIL }
oWnd:lBalloon  := .T.

ACTIVATE WINDOW oWnd;
            ON INIT ( oWnd:SetSize( oWebCam:nRight, oWebCam:nBottom ),;
            oWnd:Refresh(), oWnd:UpDate(), oWnd:Center(),PitStop())


DeleteObject( oFont )
DeleteObject( oIco )
DeleteObject( oCursor )

Return NIL
/*------------------------------------------------------------------------------*/
Static Function WebSair()
/*------------------------------------------------------------------------------*/
lStop := .F.
IF !Empty(oWebCam) // != NIL
   IF oWebCam:isConnected
      oWebCam:Finalize()
      //oWebCam:Disconnect()
   ENDIF
   oWebCam:Destroy()
ENDIF

DeleteObject( oBar )
DeleteObject( oWebCam )
oWnd:End()

Return Nil

**===================================================
Static Function PitStop()
**===================================================
DO WHILE lStop
   SysWait( .5 )
ENDDO
RETURN .T.
.rc
RC_WEBON BITMAP bmp\icono.bmp
RC_WEBOF BITMAP bmp\webcamoff.bmp
RC_FOTO  BITMAP bmp\camera.bmp
RC_WEBG BITMAP bmp\webg.bmp

Esta rotina funciona perfeitamente comigo, se ajudar!

Link to comment
Share on other sites

**===================================================================
STATIC FUNCTION GoFoto(oImg)
**===================================================================
LOCAL lRet,cFile := "tmp\file.bmp"

lRet := GetWebCam(oImg) 
If lRet
   cStrBMP := BmpToStr(oImg:hBitmap)
   //GRAVA_IMG()
EndIf

RETURN NIL

Chamada

Link to comment
Share on other sites

Olá Pessoal.

Jmsilva, eu não consegui compilar este PRG. Daí eu fui na classe que uso que é a WEBCAMPHOTO. Mas inexplicavelmente eu apenas editei o formato da webcam e voltou a funcionar.

Emotta, no meu notebook funcionou com a solução que descrevi. Mas amanhã (daqui a pouco) vou testar no cliente, e lá tem o tal do Karpesky. Se por acaso o bendito antivirus travar eu já sei o que fazer então.

Obrigado a todos.

Um abraço,

Alexandre Pereira

Link to comment
Share on other sites

  • 5 months later...
 

/*------------------------------------------------------------------------------*/
*        Archivo: WebCam.PRG                                                    *
*    Descripcion: WebCam                                                        *
*          Fecha: Diciembre del 2010                                            *
*        Release: Ver 1.0                                                       *
*          Autor: Jose Javier LLoris Roig                                       *
*    Verion para: 32Bits                                                        *
*                                                                               *
*            Libreria: FWH/FWHX 8.12 28/December/2008                           *
*             Harbour: Harbour 1.0.1 Rev 9361 1999-2008                         *
*          Compilador: Borland C++ 5.5.1 versión 32bits                         *
*  Editor de Recursos: WorkShop 4.5 y ResEdit                                   *
*       Gestor de B.D: A.D.A ( Advantage Data Architect )                       *
*                 S.O: Windows XP / Windows 7                                   *
/*------------------------------------------------------------------------------*/

#INCLUDE "Fivewin.ch"
#INCLUDE "WebCam.ch"

#DEFINE DT_CENTER  0x01

STATIC oWnd
STATIC oBar
STATIC oWebCam
STATIC lStop,lRet

**----------------------------------------------------------------------------*/
Function GetWebCam(oImg) //necessita para manter o focu da tela
**----------------------------------------------------------------------------*/
LOCAL oDlg

DEFINE DIALOG oDlg
ACTIVATE DIALOG oDlg ON INIT (ShowWindow( oDlg:hWnd,6),;
                              oDlg:Hide(),WndWebCam(oImg),oDlg:End())

Return lRet

**------------------------------------------------------------------------------*/
Static Function WndWebCam(oImg)
**------------------------------------------------------------------------------*/
LOCAL oCursor,oFont,oIco //,cFILE := "bmp\file.bmp"

lStop := .T.
lRet  := .F.

DEFINE ICON oIco RESOURCE "RC_IWEB"
DEFINE FONT oFont NAME "Tahoma" SIZE 0,-12
DEFINE CURSOR oCursor HAND


DEFINE WINDOW oWnd TITLE "Capturar Fotos";
       BORDER NONE NOMINIMIZE NOMAXIMIZE

oWnd:SetIcon(oIco)
oWnd:SetFont(oFont)

@ 60, 0 WEBCAM oWebCam SIZE 400, 400 OF oWnd ADJUST RATE 66
oWebCam:Initialize()
/* Incremento adicional por la adicion de la barra de botones */
/* y la barra de mensajes.                                    */
oWebCam:nIncrem := 130

DEFINE BUTTONBAR oBar _3D SIZE 75, 60 OF oWnd
DEFINE BUTTON RESOURCE "RC_WEBON";
       NOBORDER OF oBar;
       ACTION oWebCam:Initialize();
       TOOLTIP "Conectar a WebCam";
       FONT oFont;
       PROMPT "Conectar";
       WHEN !oWebCam:isConnected
/*
DEFINE BUTTON RESOURCE "RC_WEBG";
       NOBORDER OF oBar;
       ACTION (oWebCam:Clipboard(),;   //Copy
       oWebCam:SaveFile(cFILE),oImg:LoadBMP(cFILE)); //deu certo
       TOOLTIP "Capturar Imagem";
       FONT oFont;
       PROMPT "Capturar";
       WHEN oWebCam:isConnected
*/
DEFINE BUTTON RESOURCE "RC_FOTO";
       NOBORDER OF oBar;
       ACTION (oWebCam:Clipboard(),;   //Copy  ctrl+c
       oImg:LoadFromClipboard(),;     //paste ctrl+v
       oImg:LoadFromString(BmpToStr(oImg:hBitmap)),;
       oImg:Refresh());  //Paste
       TOOLTIP "Capturar Imagem";
       FONT oFont;
       PROMPT "Capturar";
       WHEN oWebCam:isConnected

       //oImag:CopyToClipboard()
       //classe Clipboard para text
       //oImg:LoadFromClipboard(), oImg:Refresh());  //Paste

DEFINE BUTTON RESOURCE "RC_WEBOF";
       NOBORDER OF oBar;
       ACTION oWebCam:Finalize();
       TOOLTIP "Desconectar a WebCam";
       FONT oFont;
       PROMPT "Desconectar";
       WHEN oWebCam:isConnected

DEFINE BUTTON RESOURCE "RC_WEBG";
       NOBORDER OF oBar;
       ACTION (lRet:=.T.,WebSair());
       TOOLTIP "Gravar e Sair";
       FONT oFont;
       PROMPT "Gravar";
       WHEN oWebCam:isClipboard

DEFINE BUTTON RESOURCE "RC_END";
       NOBORDER OF oBar;
       ACTION WebSair();
       TOOLTIP "Sair";
       FONT oFont;
       PROMPT "Sair"

AEval( oBar:aControls, { | o | o:oCursor := oCursor } )

oBar:bRClicked := {|| NIL }
oWnd:lBalloon  := .T.

ACTIVATE WINDOW oWnd;
            ON INIT ( oWnd:SetSize( oWebCam:nRight, oWebCam:nBottom ),;
            oWnd:Refresh(), oWnd:UpDate(), oWnd:Center(),PitStop())


DeleteObject( oFont )
DeleteObject( oIco )
DeleteObject( oCursor )

Return NIL
/*------------------------------------------------------------------------------*/
Static Function WebSair()
/*------------------------------------------------------------------------------*/
lStop := .F.
IF !Empty(oWebCam) // != NIL
   IF oWebCam:isConnected
      oWebCam:Finalize()
      //oWebCam:Disconnect()
   ENDIF
   oWebCam:Destroy()
ENDIF

DeleteObject( oBar )
DeleteObject( oWebCam )
oWnd:End()

Return Nil

**===================================================
Static Function PitStop()
**===================================================
DO WHILE lStop
   SysWait( .5 )
ENDDO
RETURN .T.

.rc
RC_WEBON BITMAP bmp\icono.bmp
RC_WEBOF BITMAP bmp\webcamoff.bmp
RC_FOTO  BITMAP bmp\camera.bmp
RC_WEBG BITMAP bmp\webg.bmp

Esta rotina funciona perfeitamente comigo, se ajudar!

Boa noite amigo Silva,

Copiei sua programação e inclui no meu projecto mas tive que abandonar porque faltam algumas funções. No entanto tenho um programa do César E. Lozada, da Venezuela, que estava funcionando muito bem até eu ter comprado um novo computador. Não sei porque razão vejo o sinal de luz que a camera está funcionando mas na tela não aparece a imagem.

Encontrei no forum uma informação para fazer as seguintes  alterações no ficheiro C:\FWH\samples\build64.bat:

- cl -TC -W3 -O2 -c -I%hdir%\include %1.c para cl -TP -W3 -O2 -c -I%hdir%\include %1.c

e acrescentar   echo strmiids.lib  >> msvc.tmp

só que não tenho a LIB strmiids.lib

será que é por falta do ficheiro strmiids.lib que a camera não aparece na tela?

Se assim for vc pode-me ceder aquele ficheiro?

 

Abraços

 

Júlio Fernandes (Portugal)

Link to comment
Share on other sites

Meu caro amigo João Santos,

Agradeço a sua tão rápida mensagem que veio em meu auxílio.

O problema subsiste e penso que deve ser por falta do arquivo strmiids.lib e estive a ver o forum e constatei que o problema só deve ficar resolvido quando adquirir a versão FWH20.04.

Um abraço

 

Júlio Fernandes

 

Link to comment
Share on other sites

Olá  Júlio Fernandes! boa tarde! 

A Lib que você citou desconheço!

Vou disponibilizar um material que tenho e funciona perfeitamente em um dos meus sistemas, caso tenha alguma dificuldade

 pode me contactar por aqui ou pelo email: saa50@bol.com.br

https://drive.google.com/open?id=1Q7DuZASQlH5nVkqNkbLcrvC14dzAA5yd

Um abraço

JMSilva

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...