Página 1 de 2

Capturar imagem da Webcam

Enviado: 21 Fev 2007 16:23
por Ivone Lopes da Silva
Oi gente, boa tarde
Estou tentando fazer a captura de imagem da webcam utilizando a eztw32.dll, conforme o exemplo que vem na minigui e também outros exemplos que peguei em diversos lugares. O que acontece é que eu consigo compilar certinho e gerar o executável, só que qdo o programa é executado ele não faz absolutamente nada do que as funções que estão nele pedem. Ele não da erro nenhum mais também não executa nada. Estou usando Xharbour 99.70 e Minigui 29a.
Será que DLL não funciona nessas versões?
Se alguém pude me ajudar, desde já muito obrigada.
Ivone

Enviado: 07 Mar 2007 22:29
por Stanis Luksys
Olá,

Como você está acessando a DLL?

Procure acessar sempre nativamente pelo xHarbour, é o que costuma dar mais certo.

Enviado: 07 Mar 2007 22:51
por rochinha
Amiguinha

Se não me engano a EZTW32.DLL é para captura de imagem em scanner, to certo?

Enviado: 08 Mar 2007 17:08
por Ivone Lopes da Silva
Primeiramente obrigada Stanis e Rochinha por ajudar.
Consegui fazer a captura da imagem com a ajuda de um colega do Grupo Minigui com as funcoes da What32.
E acabei ficando sem saber como usar DLL, pois o Stanis disse que o melhor é acessar nativamente, só que eu não sei fazer isso, ser puder me dar mais uma dica.
Quando a EZTW32.DLL capturar somente a imagem do scanner, eu não sei, pois estava tentando usa-la para Webcam porque recebi indicação para tal.
Desculpem a ignorancia, é que sou aprendiz.
Obrigada.

Enviado: 08 Mar 2007 17:57
por rochinha
Amiguinho

"Ignorante é aquele que não busca o saber...", voce não foi ignorante.

Quanto a captura eu até tenho um código, para Fivewin que faz este trabalho e para testa-lo como eu não tinha uma camera usei o Virtual Camera e foi legal então coloquei em meu freezer de informações para usar quando for necessário.

Talvez haja meios de modifica-lo para usar com MiniGUI, apesar que se a MiniGUI permitir o trabalho direto com ActiveX, métodos e propriedades do mesmo seja mais fácil de implementar e usar os recursos do Windows Media.

Entenda Windows Media é todo suporte a multimidia do sistema operacional e não Midia Player.

Enviado: 08 Mar 2007 22:37
por rochinha
Amiguinha

Voce deu sorte.

Em meus 160Gb de dados encontrei estes arquivos:

Codigo exemplo de captura de video para MiniGUI, VIDEOCAPTURE.PRG:

Código: Selecionar todos

/* ======================================================================== */
/* Programa.....: Teste das funções de capturea de vídeo                    */
/*                Para Harbour, xHarbour e Borland C Compiler 5.5           */
/* ======================================================================== */
/* Programador..: Marcos Antonio Gambeta                                    */
/* Contato......: dicasdeprogramacao@yahoo.com.br                           */
/* Website......: http://geocities.yahoo.com.br/marcosgambeta/              */
/* Criado em....: 07/12/2004 16:27:33                                       */
/* Atualizado em: 11/12/2004 15:15:21                                       */
/* Licença......: Freeware para uso pessoal ou comercial                    */
/* ======================================================================== */

#include "minigui.ch"
#include "common.ch"

#define WS_CHILD     0x40000000
#define WS_VISIBLE   0x10000000

//--------------------------------------------------------------------------//

Static nHandle
Static lRet
Static nDriver

//--------------------------------------------------------------------------//

Function Main ()

   nHandle := 0
   nDriver := 0

   DEFINE WINDOW Form1 ;
      AT 0,0 ;
      WIDTH 640 HEIGHT 480 ;
      TITLE "Teste das funções de captura de vídeo" ;
      MAIN ;
      BACKCOLOR GRAY

      DEFINE MAIN MENU
         POPUP "Opções"
            ITEM "capCreateCaptureWindow"       ACTION _capCreateCaptureWindow ()
            ITEM "Destroy Capture Window"       ACTION DestroyCaptureWindow ()
            SEPARATOR
            ITEM "capDriverConnect"             ACTION _capDriverConnect ()
            ITEM "capDriverDisconnect"          ACTION _capDriverDisconnect ()
            SEPARATOR
            ITEM "capCaptureAbort"              ACTION _capCaptureAbort ()
            ITEM "capCaptureSequence"           ACTION _capCaptureSequence ()
            ITEM "capCaptureSequenceNoFile"     ACTION _capCaptureSequenceNoFile ()
            ITEM "capCaptureSingleFrame"        ACTION _capCaptureSingleFrame ()
            ITEM "capCaptureSingleFrameClose"   ACTION _capCaptureSingleFrameClose ()
            ITEM "capCaptureSingleFrameOpen"    ACTION _capCaptureSingleFrameOpen ()
            ITEM "capCaptureStop"               ACTION _capCaptureStop ()
            ITEM "capEditCopy"                  ACTION _capEditCopy ()
            //ITEM "capFileAlloc"               ACTION _capFileAlloc ()
            //ITEM "capFileSaveAs"              ACTION _capFileSaveAs ()
            //ITEM "capFileSaveDIB"             ACTION _capFileSaveDIB ()
            //ITEM "capFileSetCaptureFile"      ACTION _capFileSetCaptureFile ()
            ITEM "capGrabFrame"                 ACTION _capGrabFrame ()
            ITEM "capGrabFrameNoStop"           ACTION _capGrabFrameNoStop ()
            //ITEM "capPaletteAuto"             ACTION _capPaletteAuto ()
            //ITEM "capPaletteManual"           ACTION _capPaletteManual ()
            //ITEM "capPaletteOpen"             ACTION _capPaletteOpen ()
            //ITEM "capPalettePaste"            ACTION _capPalettePaste ()
            //ITEM "capPaletteSave"             ACTION _capPaletteSave ()
            //ITEM "capPreviewRate"             ACTION _capPreviewRate ()
            //ITEM "capSetMCIDeviceName"        ACTION _capSetMCIDeviceName ()
            ITEM "capSetUserData"               ACTION _capSetUserData ()
            //SEPARATOR
            //ITEM "Sair" ACTION DoMethod("Form1","Close")
         END POPUP
         POPUP "Drivers"
            ITEM "Driver 0 (Default)"           ACTION SelectDriver (0) NAME menuDriver0 CHECKED
            ITEM "Driver 1"                     ACTION SelectDriver (1) NAME menuDriver1
            ITEM "Driver 2"                     ACTION SelectDriver (2) NAME menuDriver2
            ITEM "Driver 3"                     ACTION SelectDriver (3) NAME menuDriver3
            ITEM "Driver 4"                     ACTION SelectDriver (4) NAME menuDriver4
            ITEM "Driver 5"                     ACTION SelectDriver (5) NAME menuDriver5
            ITEM "Driver 6"                     ACTION SelectDriver (6) NAME menuDriver6
            ITEM "Driver 7"                     ACTION SelectDriver (7) NAME menuDriver7
            ITEM "Driver 8"                     ACTION SelectDriver (8) NAME menuDriver8
            ITEM "Driver 9"                     ACTION SelectDriver (9) NAME menuDriver9
         END POPUP
         POPUP "Configuração"
            ITEM "capDlgVideoCompression"       ACTION _capDlgVideoCompression ()
            ITEM "capDlgVideoDisplay"           ACTION _capDlgVideoDisplay ()
            ITEM "capDlgVideoFormat"            ACTION _capDlgVideoFormat ()
            ITEM "capDlgVideoSource"            ACTION _capDlgVideoSource ()
            SEPARATOR
            ITEM "capOverlay (Habilita)"        ACTION _capOverlay (TRUE)
            ITEM "capOverlay (Desabilita)"      ACTION _capOverlay (FALSE)
            ITEM "capPreview (Habilita)"        ACTION _capPreview (TRUE)
            ITEM "capPreview (Desabilita)"      ACTION _capPreview (FALSE)
            ITEM "capPreviewScale (Habilita)"   ACTION _capPreviewScale (TRUE)
            ITEM "capPreviewScale (Desabilita)" ACTION _capPreviewScale (FALSE)
         END POPUP
         POPUP "Informação"
            ITEM "capGetDriverDescription"      ACTION _capGetDriverDescription ()
            ITEM "capDriverGetName"             ACTION _capDriverGetName ()
            ITEM "capDriverGetVersion"          ACTION _capDriverGetVersion ()
            ITEM "capFileGetCaptureFile"        ACTION _capFileGetCaptureFile ()
            ITEM "capGetAudioFormatSize"        ACTION _capGetAudioFormatSize ()
            ITEM "capGetMCIDeviceName"          ACTION _capGetMCIDeviceName ()
            ITEM "capGetUserData"               ACTION _capGetUserData ()
            ITEM "capGetVideoFormatSize"        ACTION _capGetVideoFormatSize ()
         END POPUP
         POPUP "Ajuda"
            ITEM "Sobre o programa" ACTION MsgInfo ("Teste das funções de captura de vídeo","Sobre o programa")
         END POPUP
      END MENU

      DEFINE STATUSBAR
         STATUSITEM "Connected: FALSE" WIDTH 640/5 FLAT
         STATUSITEM "Driver: 0"        WIDTH 640/5 FLAT
         STATUSITEM "Overlay:"         WIDTH 640/5 FLAT
         STATUSITEM "Preview:"         WIDTH 640/5 FLAT
         STATUSITEM "PreviewScale:"    WIDTH 640/5 FLAT
      END STATUSBAR

   END WINDOW

   CENTER WINDOW Form1

   ACTIVATE WINDOW Form1

   Return Nil

//--------------------------------------------------------------------------//

Static Function _capCreateCaptureWindow ()

   Local nRow := (480-240)/2 - 40
   Local nCol := (640-320)/2

   If nHandle == 0
      nHandle := capCreateCaptureWindow( "capturewindow", WS_CHILD+WS_VISIBLE, nCol, nRow, 320, 240, GetFormHandle("Form1"), 1 )
   Else
      MsgInfo( "Janela de captura já foi criada", "Atenção" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function DestroyCaptureWindow ()

   If nHandle <> 0
      DestroyWindow( nHandle )
      nHandle := 0
   Else
     MsgInfo( "Nenhuma janela de captura criada", "Atenção" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capGetDriverDescription ()

   Local cNome := space(255)
   Local nTamanhoNome := 255
   Local cVersao := space(255)
   Local nTamanhoVersao := 255

   lRet := capGetDriverDescription( 0, @cNome, @nTamanhoNome, @cVersao, @nTamanhoVersao )

   If lRet == TRUE
      MsgInfo( "OK", "capGetDriverDescription" )
   Else
      MsgInfo( "Erro", "capGetDriverDescription" )
   EndIf

   MsgInfo(cNome,"DriverName")
   MsgInfo(cVersao,"DriverVersion")

   Return Nil

//--------------------------------------------------------------------------//

Static Function _capCaptureAbort ()

   lRet := capCaptureAbort( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capCaptureAbort" )
   Else
      MsgInfo( "Erro", "capCaptureAbort" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capCaptureSequence ()

   lRet := capCaptureSequence( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capCaptureSequence" )
   Else
      MsgInfo( "Erro", "capCaptureSequence" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capCaptureSequenceNoFile ()

   lRet := capCaptureSequenceNoFile( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capCaptureSequenceNoFile" )
   Else
      MsgInfo( "Erro", "capCaptureSequenceNoFile" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capCaptureSingleFrame ()

   lRet := capCaptureSingleFrame( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capCaptureSingleFrame" )
   Else
      MsgInfo( "Erro", "capCaptureSingleFrame" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capCaptureSingleFrameClose ()

   lRet := capCaptureSingleFrameClose( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capCaptureSingleFrameClose" )
   Else
      MsgInfo( "Erro", "capCaptureSingleFrameClose" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capCaptureSingleFrameOpen ()

   lRet := capCaptureSingleFrameOpen( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capCaptureSingleFrameOpen" )
   Else
      MsgInfo( "Erro", "capCaptureSingleFrameOpen" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capCaptureStop ()

   lRet := capCaptureStop( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capCaptureStop" )
   Else
      MsgInfo( "Erro", "capCaptureStop" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capDlgVideoCompression ()

   lRet := capDlgVideoCompression( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capDlgVideoCompression" )
   Else
      MsgInfo( "Erro", "capDlgVideoCompression" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capDlgVideoDisplay ()

   lRet := capDlgVideoDisplay( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capDlgVideoDisplay" )
   Else
      MsgInfo( "Erro", "capDlgVideoDisplay" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capDlgVideoFormat ()

   lRet := capDlgVideoFormat( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capDlgVideoFormat" )
   Else
      MsgInfo( "Erro", "capDlgVideoFormat" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capDlgVideoSource ()

   lRet := capDlgVideoSource( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capDlgVideoSource" )
   Else
      MsgInfo( "Erro", "capDlgVideoSource" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capDriverConnect ()

   lRet := capDriverConnect( nHandle, nDriver )
   If lRet == TRUE
      Form1.StatusBar.Item(1) := "Connected: TRUE"
      MsgInfo( "OK", "capDriverConnect" )
   Else
      MsgInfo( "Erro", "capDriverConnect" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capDriverDisconnect ()

   lRet := capDriverDisconnect( nHandle )
   If lRet == TRUE
      Form1.StatusBar.Item(1) := "Connected: FALSE"
      MsgInfo( "OK", "capDriverDisconnect" )
   Else
      MsgInfo( "Erro", "capDriverDisconnect" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capDriverGetName ()

   Local cNome := space(255)
   Local nTamanho := 255

   lRet := capDriverGetName( nHandle, @cNome, @nTamanho )
   If lRet == TRUE
      MsgInfo( "OK", "capDriverGetName" )
   Else
      MsgInfo( "Erro", "capDriverGetName" )
   EndIf
   MsgInfo(cNome,"DriverName")
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capDriverGetVersion ()

   Local cVersao := space(40)
   Local nTamanho := 40

   lRet := capDriverGetVersion( nHandle, @cVersao, @nTamanho )
   If lRet == TRUE
      MsgInfo( "OK", "capDriverGetVersion" )
   Else
      MsgInfo( "Erro", "capDriverGetVersion" )
   EndIf
   MsgInfo(cVersao,"DriverVersion")
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capEditCopy ()

   lRet := capEditCopy( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capEditCopy" )
   Else
      MsgInfo( "Erro", "capEditCopy" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capFileAlloc ()

   lRet := capFileAlloc( nHandle, 1024 )
   If lRet == TRUE
      MsgInfo( "OK", "capFileAlloc" )
   Else
      MsgInfo( "Erro", "capFileAlloc" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capFileGetCaptureFile ()

   Local cNome := space(255)
   Local nTamanho := 255

   lRet := capFileGetCaptureFile( nHandle, @cNome, @nTamanho )
   If lRet == TRUE
      MsgInfo( "OK", "capFileGetCaptureFile" )
   Else
      MsgInfo( "Erro", "capFileGetCaptureFile" )
   EndIf
   MsgInfo(cNome,"CaptureFile")
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capFileSaveAs ()

   lRet := capFileSaveAs( nHandle, "c:\teste.avi" )
   If lRet == TRUE
      MsgInfo( "OK", "capFileSaveAs" )
   Else
      MsgInfo( "Erro", "capFileSaveAs" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capFileSaveDIB ()

   lRet := capFileSaveDIB( nHandle, "c:\teste.bmp" )
   If lRet == TRUE
      MsgInfo( "OK", "capFileSaveDIB" )
   Else
      MsgInfo( "Erro", "capFileSaveDIB" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capFileSetCaptureFile ()

   lRet := capFileSetCaptureFile( nHandle, "c:\teste.avi" )
   If lRet == TRUE
      MsgInfo( "OK", "capFileSetCaptureFile" )
   Else
      MsgInfo( "Erro", "capFileSetCaptureFile" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capGetAudioFormatSize ()

   nRet := capGetAudioFormatSize( nHandle )
   MsgInfo(Str(nRet),"AudioFormatSize")
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capGetMCIDeviceName ()

   Local cNome := space(255)
   Local nTamanho := 255

   lRet := capGetMCIDeviceName( nHandle, @cNome, @nTamanho )
   If lRet == TRUE
      MsgInfo( "OK", "capGetMCIDeviceName" )
   Else
      MsgInfo( "Erro", "capGetMCIDeviceName" )
   EndIf
   MsgInfo(cNome,"MCIDeviceName")
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capGetUserData ()

   nRet := capGetUserData( nHandle )
   MsgInfo(Str(nRet),"UserData")
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capGetVideoFormatSize ()

   nRet := capGetVideoFormatSize( nHandle )
   MsgInfo(Str(nRet),"VideoFormatSize")
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capGrabFrame ()

   lRet := capGrabFrame( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capGrabFrame" )
   Else
      MsgInfo( "Erro", "capGrabFrame" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capGrabFrameNoStop ()

   lRet := capGrabFrameNoStop( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capGrabFrameNoStop" )
   Else
      MsgInfo( "Erro", "capGrabFrameNoStop" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capOverlay (lflag)

   //Form1.StatusBar.Item(3) := "Overlay: "+If(lflag,"TRUE","FALSE")
   lRet := capOverlay( nHandle, lflag )
   If lRet == TRUE
      MsgInfo( "OK", "capOverlay" )
      Form1.StatusBar.Item(3) := "Overlay: "+If(lflag,"TRUE","FALSE")
   Else
      MsgInfo( "Erro", "capOverlay" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capPaletteAuto ()

   lRet := capPaletteAuto( nHandle, nFrames, nColors )
   If lRet == TRUE
      MsgInfo( "OK", "capPaletteAuto" )
   Else
      MsgInfo( "Erro", "capPaletteAuto" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capPaletteManual ()

   lRet := capPaletteManual( nHandle, lGrab, nColors )
   If lRet == TRUE
      MsgInfo( "OK", "capPaletteManual" )
   Else
      MsgInfo( "Erro", "capPaletteManual" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capPaletteOpen ()

   lRet := capPaletteOpen( nHandle, cName )
   If lRet == TRUE
      MsgInfo( "OK", "capPaletteOpen" )
   Else
      MsgInfo( "Erro", "capPaletteOpen" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capPalettePaste ()

   lRet := capPalettePaste( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capPalettePaste" )
   Else
      MsgInfo( "Erro", "capPalettePaste" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capPaletteSave ()

   lRet := capPaletteSave( nHandle, cName )
   If lRet == TRUE
      MsgInfo( "OK", "capPaletteSave" )
   Else
      MsgInfo( "Erro", "capPaletteSave" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capPreview (lflag)

   //Form1.StatusBar.Item(4) := "Preview: "+If(lflag,"TRUE","FALSE")
   lRet := capPreview( nHandle, lflag )
   If lRet == TRUE
      MsgInfo( "OK", "capPreview" )
      Form1.StatusBar.Item(4) := "Preview: "+If(lflag,"TRUE","FALSE")
   Else
      MsgInfo( "Erro", "capPreview" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capPreviewRate ()

   lRet := capPreviewRate( nHandle, nMS )
   If lRet == TRUE
      MsgInfo( "OK", "capPreviewRate" )
   Else
      MsgInfo( "Erro", "capPreviewRate" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capPreviewScale (lflag)

   //Form1.StatusBar.Item(5) := "PreviewScale: "+If(lflag,"TRUE","FALSE")
   lRet := capPreviewScale( nHandle, lflag )
   If lRet == TRUE
      MsgInfo( "OK", "capPreviewScale" )
      Form1.StatusBar.Item(5) := "PreviewScale: "+If(lflag,"TRUE","FALSE")
   Else
      MsgInfo( "Erro", "capPreviewScale" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capSetMCIDeviceName ()

   lRet := capSetMCIDeviceName( nHandle, cName )
   If lRet == TRUE
      MsgInfo( "OK", "capSetMCIDeviceName" )
   Else
      MsgInfo( "Erro", "capSetMCIDeviceName" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capSetUserData ()

   lRet := capSetUserData( nHandle, 999 )
   If lRet == TRUE
      MsgInfo( "OK", "capSetUserData" )
   Else
      MsgInfo( "Erro", "capSetUserData" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function SelectDriver (nIndex)

   Form1.menuDriver0.Checked := FALSE
   Form1.menuDriver1.Checked := FALSE
   Form1.menuDriver2.Checked := FALSE
   Form1.menuDriver3.Checked := FALSE
   Form1.menuDriver4.Checked := FALSE
   Form1.menuDriver5.Checked := FALSE
   Form1.menuDriver6.Checked := FALSE
   Form1.menuDriver7.Checked := FALSE
   Form1.menuDriver8.Checked := FALSE
   Form1.menuDriver9.Checked := FALSE

   nDriver := nIndex

   Do Case
   Case nDriver == 0 ; Form1.menuDriver0.Checked := TRUE
   Case nDriver == 1 ; Form1.menuDriver1.Checked := TRUE
   Case nDriver == 2 ; Form1.menuDriver2.Checked := TRUE
   Case nDriver == 3 ; Form1.menuDriver3.Checked := TRUE
   Case nDriver == 4 ; Form1.menuDriver4.Checked := TRUE
   Case nDriver == 5 ; Form1.menuDriver5.Checked := TRUE
   Case nDriver == 6 ; Form1.menuDriver6.Checked := TRUE
   Case nDriver == 7 ; Form1.menuDriver7.Checked := TRUE
   Case nDriver == 8 ; Form1.menuDriver8.Checked := TRUE
   Case nDriver == 9 ; Form1.menuDriver9.Checked := TRUE
   EndCase

   Form1.StatusBar.Item(2) := "Driver: "+Str(nDriver,1)

   Return Nil

//--------------------------------------------------------------------------//
VIDEOCAPTURE.MLK

Código: Selecionar todos

GUI=Y
EXEFILE videocapture.exe
FILE videocapture.prg
LIB c:\videocapture-0.1\lib\videocapture.lib
DIROBJ obj
Codigo exemplo de captura de video para HWGUI, VIDEOCAPTURE.PRG:

Código: Selecionar todos

/* ======================================================================== */
/* Programa.....: Teste das funções de capturea de vídeo                    */
/*                Para Harbour, xHarbour e Borland C Compiler 5.5           */
/* ======================================================================== */
/* Programador..: Marcos Antonio Gambeta                                    */
/* Contato......: dicasdeprogramacao@yahoo.com.br                           */
/* Website......: http://geocities.yahoo.com.br/marcosgambeta/              */
/* Criado em....: 11/12/2004 15:20:32                                       */
/* Atualizado em: 11/12/2004 20:55:51                                       */
/* Licença......: Freeware para uso pessoal ou comercial                    */
/* ======================================================================== */

#include "windows.ch"
#include "guilib.ch"
#include "common.ch"

//--------------------------------------------------------------------------//

Static nHandle
Static lRet
Static nDriver
Static oWnd

//--------------------------------------------------------------------------//

Function Main ()

   nHandle := 0
   nDriver := 0

   INIT WINDOW oWnd MAIN TITLE "Teste das funções de captura de vídeo" ;
      AT 100,100 SIZE 640,480

   MENU OF oWnd
      MENU TITLE "Opções"
         MENUITEM "capCreateCaptureWindow"       ACTION _capCreateCaptureWindow ()
         MENUITEM "Destroy Capture Window"       ACTION DestroyCaptureWindow ()
         SEPARATOR
         MENUITEM "capDriverConnect"             ACTION _capDriverConnect ()
         MENUITEM "capDriverDisconnect"          ACTION _capDriverDisconnect ()
         SEPARATOR
         MENUITEM "capCaptureAbort"              ACTION _capCaptureAbort ()
         MENUITEM "capCaptureSequence"           ACTION _capCaptureSequence ()
         MENUITEM "capCaptureSequenceNoFile"     ACTION _capCaptureSequenceNoFile ()
         MENUITEM "capCaptureSingleFrame"        ACTION _capCaptureSingleFrame ()
         MENUITEM "capCaptureSingleFrameClose"   ACTION _capCaptureSingleFrameClose ()
         MENUITEM "capCaptureSingleFrameOpen"    ACTION _capCaptureSingleFrameOpen ()
         MENUITEM "capCaptureStop"               ACTION _capCaptureStop ()
         MENUITEM "capEditCopy"                  ACTION _capEditCopy ()
         //MENUITEM "capFileAlloc"               ACTION _capFileAlloc ()
         //MENUITEM "capFileSaveAs"              ACTION _capFileSaveAs ()
         //MENUITEM "capFileSaveDIB"             ACTION _capFileSaveDIB ()
         //MENUITEM "capFileSetCaptureFile"      ACTION _capFileSetCaptureFile ()
         MENUITEM "capGrabFrame"                 ACTION _capGrabFrame ()
         MENUITEM "capGrabFrameNoStop"           ACTION _capGrabFrameNoStop ()
         //MENUITEM "capPaletteAuto"             ACTION _capPaletteAuto ()
         //MENUITEM "capPaletteManual"           ACTION _capPaletteManual ()
         //MENUITEM "capPaletteOpen"             ACTION _capPaletteOpen ()
         //MENUITEM "capPalettePaste"            ACTION _capPalettePaste ()
         //MENUITEM "capPaletteSave"             ACTION _capPaletteSave ()
         //MENUITEM "capPreviewRate"             ACTION _capPreviewRate ()
         //MENUITEM "capSetMCIDeviceName"        ACTION _capSetMCIDeviceName ()
         MENUITEM "capSetUserData"               ACTION _capSetUserData ()
         SEPARATOR
         MENUITEM "Sair" ACTION oWnd:Close()
      ENDMENU
      MENU TITLE "Drivers"
         MENUITEM "Driver 0 (Default)"           ID 100 ACTION SelectDriver (0)
         MENUITEM "Driver 1"                     ID 101 ACTION SelectDriver (1)
         MENUITEM "Driver 2"                     ID 102 ACTION SelectDriver (2)
         MENUITEM "Driver 3"                     ID 103 ACTION SelectDriver (3)
         MENUITEM "Driver 4"                     ID 104 ACTION SelectDriver (4)
         MENUITEM "Driver 5"                     ID 105 ACTION SelectDriver (5)
         MENUITEM "Driver 6"                     ID 106 ACTION SelectDriver (6)
         MENUITEM "Driver 7"                     ID 107 ACTION SelectDriver (7)
         MENUITEM "Driver 8"                     ID 108 ACTION SelectDriver (8)
         MENUITEM "Driver 9"                     ID 109 ACTION SelectDriver (9)
      ENDMENU
      MENU TITLE "Configuração"
         MENUITEM "capDlgVideoCompression"       ACTION _capDlgVideoCompression ()
         MENUITEM "capDlgVideoDisplay"           ACTION _capDlgVideoDisplay ()
         MENUITEM "capDlgVideoFormat"            ACTION _capDlgVideoFormat ()
         MENUITEM "capDlgVideoSource"            ACTION _capDlgVideoSource ()
         SEPARATOR
         MENUITEM "capOverlay (Habilita)"        ACTION _capOverlay (TRUE)
         MENUITEM "capOverlay (Desabilita)"      ACTION _capOverlay (FALSE)
         MENUITEM "capPreview (Habilita)"        ACTION _capPreview (TRUE)
         MENUITEM "capPreview (Desabilita)"      ACTION _capPreview (FALSE)
         MENUITEM "capPreviewScale (Habilita)"   ACTION _capPreviewScale (TRUE)
         MENUITEM "capPreviewScale (Desabilita)" ACTION _capPreviewScale (FALSE)
      ENDMENU
      MENU TITLE "Informação"
         MENUITEM "capGetDriverDescription"      ACTION _capGetDriverDescription ()
         MENUITEM "capDriverGetName"             ACTION _capDriverGetName ()
         MENUITEM "capDriverGetVersion"          ACTION _capDriverGetVersion ()
         MENUITEM "capFileGetCaptureFile"        ACTION _capFileGetCaptureFile ()
         MENUITEM "capGetAudioFormatSize"        ACTION _capGetAudioFormatSize ()
         MENUITEM "capGetMCIDeviceName"          ACTION _capGetMCIDeviceName ()
         MENUITEM "capGetUserData"               ACTION _capGetUserData ()
         MENUITEM "capGetVideoFormatSize"        ACTION _capGetVideoFormatSize ()
      ENDMENU
      MENU TITLE "Ajuda"
         MENUITEM "Sobre o programa" ACTION MsgInfo ("Teste das funções de captura de vídeo","Sobre o programa")
      ENDMENU
   ENDMENU

   ADD STATUS PARTS 640/5,640/5,640/5,640/5,640/5

   WriteStatus( oWnd, 1, "Connected: FALSE" )
   WriteStatus( oWnd, 2, "Driver: 0"        )
   WriteStatus( oWnd, 3, "Overlay:"         )
   WriteStatus( oWnd, 4, "Preview:"         )
   WriteStatus( oWnd, 5, "PreviewScale:"    )

   CheckMenuItem( , 100, TRUE )

   CENTER WINDOW oWnd

   ACTIVATE WINDOW oWnd

   Return Nil

//--------------------------------------------------------------------------//

Static Function _capCreateCaptureWindow ()

   Local nRow := (480-240)/2 - 40
   Local nCol := (640-320)/2

   If nHandle == 0
      nHandle := capCreateCaptureWindow( "capturewindow", WS_CHILD+WS_VISIBLE, nCol, nRow, 320, 240, oWnd:Handle, 1 )
   Else
      MsgInfo( "Janela de captura já foi criada", "Atenção" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function DestroyCaptureWindow ()

   If nHandle <> 0
      DestroyWindow( nHandle )
      nHandle := 0
   Else
     MsgInfo( "Nenhuma janela de captura criada", "Atenção" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capGetDriverDescription ()

   Local cNome := space(255)
   Local nTamanhoNome := 255
   Local cVersao := space(255)
   Local nTamanhoVersao := 255

   lRet := capGetDriverDescription( 0, @cNome, @nTamanhoNome, @cVersao, @nTamanhoVersao )

   If lRet == TRUE
      MsgInfo( "OK", "capGetDriverDescription" )
   Else
      MsgInfo( "Erro", "capGetDriverDescription" )
   EndIf

   MsgInfo(cNome,"DriverName")
   MsgInfo(cVersao,"DriverVersion")

   Return Nil

//--------------------------------------------------------------------------//

Static Function _capCaptureAbort ()

   lRet := capCaptureAbort( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capCaptureAbort" )
   Else
      MsgInfo( "Erro", "capCaptureAbort" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capCaptureSequence ()

   lRet := capCaptureSequence( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capCaptureSequence" )
   Else
      MsgInfo( "Erro", "capCaptureSequence" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capCaptureSequenceNoFile ()

   lRet := capCaptureSequenceNoFile( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capCaptureSequenceNoFile" )
   Else
      MsgInfo( "Erro", "capCaptureSequenceNoFile" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capCaptureSingleFrame ()

   lRet := capCaptureSingleFrame( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capCaptureSingleFrame" )
   Else
      MsgInfo( "Erro", "capCaptureSingleFrame" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capCaptureSingleFrameClose ()

   lRet := capCaptureSingleFrameClose( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capCaptureSingleFrameClose" )
   Else
      MsgInfo( "Erro", "capCaptureSingleFrameClose" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capCaptureSingleFrameOpen ()

   lRet := capCaptureSingleFrameOpen( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capCaptureSingleFrameOpen" )
   Else
      MsgInfo( "Erro", "capCaptureSingleFrameOpen" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capCaptureStop ()

   lRet := capCaptureStop( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capCaptureStop" )
   Else
      MsgInfo( "Erro", "capCaptureStop" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capDlgVideoCompression ()

   lRet := capDlgVideoCompression( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capDlgVideoCompression" )
   Else
      MsgInfo( "Erro", "capDlgVideoCompression" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capDlgVideoDisplay ()

   lRet := capDlgVideoDisplay( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capDlgVideoDisplay" )
   Else
      MsgInfo( "Erro", "capDlgVideoDisplay" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capDlgVideoFormat ()

   lRet := capDlgVideoFormat( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capDlgVideoFormat" )
   Else
      MsgInfo( "Erro", "capDlgVideoFormat" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capDlgVideoSource ()

   lRet := capDlgVideoSource( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capDlgVideoSource" )
   Else
      MsgInfo( "Erro", "capDlgVideoSource" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capDriverConnect ()

   lRet := capDriverConnect( nHandle, nDriver )
   If lRet == TRUE
      WriteStatus( oWnd, 1, "Connected: TRUE" )
      MsgInfo( "OK", "capDriverConnect" )
   Else
      MsgInfo( "Erro", "capDriverConnect" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capDriverDisconnect ()

   lRet := capDriverDisconnect( nHandle )
   If lRet == TRUE
      WriteStatus( oWnd, 1, "Connected: FALSE" )
      MsgInfo( "OK", "capDriverDisconnect" )
   Else
      MsgInfo( "Erro", "capDriverDisconnect" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capDriverGetName ()

   Local cNome := space(255)
   Local nTamanho := 255

   lRet := capDriverGetName( nHandle, @cNome, @nTamanho )
   If lRet == TRUE
      MsgInfo( "OK", "capDriverGetName" )
   Else
      MsgInfo( "Erro", "capDriverGetName" )
   EndIf
   MsgInfo(cNome,"DriverName")
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capDriverGetVersion ()

   Local cVersao := space(40)
   Local nTamanho := 40

   lRet := capDriverGetVersion( nHandle, @cVersao, @nTamanho )
   If lRet == TRUE
      MsgInfo( "OK", "capDriverGetVersion" )
   Else
      MsgInfo( "Erro", "capDriverGetVersion" )
   EndIf
   MsgInfo(cVersao,"DriverVersion")
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capEditCopy ()

   lRet := capEditCopy( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capEditCopy" )
   Else
      MsgInfo( "Erro", "capEditCopy" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capFileAlloc ()

   lRet := capFileAlloc( nHandle, 1024 )
   If lRet == TRUE
      MsgInfo( "OK", "capFileAlloc" )
   Else
      MsgInfo( "Erro", "capFileAlloc" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capFileGetCaptureFile ()

   Local cNome := space(255)
   Local nTamanho := 255

   lRet := capFileGetCaptureFile( nHandle, @cNome, @nTamanho )
   If lRet == TRUE
      MsgInfo( "OK", "capFileGetCaptureFile" )
   Else
      MsgInfo( "Erro", "capFileGetCaptureFile" )
   EndIf
   MsgInfo(cNome,"CaptureFile")
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capFileSaveAs ()

   lRet := capFileSaveAs( nHandle, "c:\teste.avi" )
   If lRet == TRUE
      MsgInfo( "OK", "capFileSaveAs" )
   Else
      MsgInfo( "Erro", "capFileSaveAs" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capFileSaveDIB ()

   lRet := capFileSaveDIB( nHandle, "c:\teste.bmp" )
   If lRet == TRUE
      MsgInfo( "OK", "capFileSaveDIB" )
   Else
      MsgInfo( "Erro", "capFileSaveDIB" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capFileSetCaptureFile ()

   lRet := capFileSetCaptureFile( nHandle, "c:\teste.avi" )
   If lRet == TRUE
      MsgInfo( "OK", "capFileSetCaptureFile" )
   Else
      MsgInfo( "Erro", "capFileSetCaptureFile" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capGetAudioFormatSize ()

   nRet := capGetAudioFormatSize( nHandle )
   MsgInfo(Str(nRet),"AudioFormatSize")
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capGetMCIDeviceName ()

   Local cNome := space(255)
   Local nTamanho := 255

   lRet := capGetMCIDeviceName( nHandle, @cNome, @nTamanho )
   If lRet == TRUE
      MsgInfo( "OK", "capGetMCIDeviceName" )
   Else
      MsgInfo( "Erro", "capGetMCIDeviceName" )
   EndIf
   MsgInfo(cNome,"MCIDeviceName")
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capGetUserData ()

   nRet := capGetUserData( nHandle )
   MsgInfo(Str(nRet),"UserData")
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capGetVideoFormatSize ()

   nRet := capGetVideoFormatSize( nHandle )
   MsgInfo(Str(nRet),"VideoFormatSize")
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capGrabFrame ()

   lRet := capGrabFrame( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capGrabFrame" )
   Else
      MsgInfo( "Erro", "capGrabFrame" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capGrabFrameNoStop ()

   lRet := capGrabFrameNoStop( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capGrabFrameNoStop" )
   Else
      MsgInfo( "Erro", "capGrabFrameNoStop" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capOverlay (lflag)

   lRet := capOverlay( nHandle, lflag )
   If lRet == TRUE
      MsgInfo( "OK", "capOverlay" )
      WriteStatus( oWnd, 3, "Overlay: "+If(lflag,"TRUE","FALSE") )
   Else
      MsgInfo( "Erro", "capOverlay" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capPaletteAuto ()

   lRet := capPaletteAuto( nHandle, nFrames, nColors )
   If lRet == TRUE
      MsgInfo( "OK", "capPaletteAuto" )
   Else
      MsgInfo( "Erro", "capPaletteAuto" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capPaletteManual ()

   lRet := capPaletteManual( nHandle, lGrab, nColors )
   If lRet == TRUE
      MsgInfo( "OK", "capPaletteManual" )
   Else
      MsgInfo( "Erro", "capPaletteManual" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capPaletteOpen ()

   lRet := capPaletteOpen( nHandle, cName )
   If lRet == TRUE
      MsgInfo( "OK", "capPaletteOpen" )
   Else
      MsgInfo( "Erro", "capPaletteOpen" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capPalettePaste ()

   lRet := capPalettePaste( nHandle )
   If lRet == TRUE
      MsgInfo( "OK", "capPalettePaste" )
   Else
      MsgInfo( "Erro", "capPalettePaste" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capPaletteSave ()

   lRet := capPaletteSave( nHandle, cName )
   If lRet == TRUE
      MsgInfo( "OK", "capPaletteSave" )
   Else
      MsgInfo( "Erro", "capPaletteSave" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capPreview (lflag)

   lRet := capPreview( nHandle, lflag )
   If lRet == TRUE
      MsgInfo( "OK", "capPreview" )
      WriteStatus( oWnd, 4, "Preview: "+If(lflag,"TRUE","FALSE") )
   Else
      MsgInfo( "Erro", "capPreview" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capPreviewRate ()

   lRet := capPreviewRate( nHandle, nMS )
   If lRet == TRUE
      MsgInfo( "OK", "capPreviewRate" )
   Else
      MsgInfo( "Erro", "capPreviewRate" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capPreviewScale (lflag)

   lRet := capPreviewScale( nHandle, lflag )
   If lRet == TRUE
      MsgInfo( "OK", "capPreviewScale" )
      WriteStatus( oWnd, 5, "PreviewScale: "+If(lflag,"TRUE","FALSE") )
   Else
      MsgInfo( "Erro", "capPreviewScale" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capSetMCIDeviceName ()

   lRet := capSetMCIDeviceName( nHandle, cName )
   If lRet == TRUE
      MsgInfo( "OK", "capSetMCIDeviceName" )
   Else
      MsgInfo( "Erro", "capSetMCIDeviceName" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function _capSetUserData ()

   lRet := capSetUserData( nHandle, 999 )
   If lRet == TRUE
      MsgInfo( "OK", "capSetUserData" )
   Else
      MsgInfo( "Erro", "capSetUserData" )
   EndIf
   Return Nil

//--------------------------------------------------------------------------//

Static Function SelectDriver (nIndex)

   Do Case
   Case nDriver == 0 ; CheckMenuItem( , 100, FALSE )
   Case nDriver == 1 ; CheckMenuItem( , 101, FALSE )
   Case nDriver == 2 ; CheckMenuItem( , 102, FALSE )
   Case nDriver == 3 ; CheckMenuItem( , 103, FALSE )
   Case nDriver == 4 ; CheckMenuItem( , 104, FALSE )
   Case nDriver == 5 ; CheckMenuItem( , 105, FALSE )
   Case nDriver == 6 ; CheckMenuItem( , 106, FALSE )
   Case nDriver == 7 ; CheckMenuItem( , 107, FALSE )
   Case nDriver == 8 ; CheckMenuItem( , 108, FALSE )
   Case nDriver == 9 ; CheckMenuItem( , 109, FALSE )
   EndCase

   nDriver := nIndex

   Do Case
   Case nDriver == 0 ; CheckMenuItem( , 100, TRUE )
   Case nDriver == 1 ; CheckMenuItem( , 101, TRUE )
   Case nDriver == 2 ; CheckMenuItem( , 102, TRUE )
   Case nDriver == 3 ; CheckMenuItem( , 103, TRUE )
   Case nDriver == 4 ; CheckMenuItem( , 104, TRUE )
   Case nDriver == 5 ; CheckMenuItem( , 105, TRUE )
   Case nDriver == 6 ; CheckMenuItem( , 106, TRUE )
   Case nDriver == 7 ; CheckMenuItem( , 107, TRUE )
   Case nDriver == 8 ; CheckMenuItem( , 108, TRUE )
   Case nDriver == 9 ; CheckMenuItem( , 109, TRUE )
   EndCase

   WriteStatus( oWnd, 2, "Driver: "+Str(nDriver,1) )

   Return Nil

//--------------------------------------------------------------------------//

Enviado: 11 Mar 2007 10:45
por Ivone Lopes da Silva
Rochinha,
o código que vc me mandou funciona certinho. Ainda estou testando ele, mais queria agradecer pela sua ajuda e dos demais colegas do forum e aproveitar a oportunidadepara dizer que tenho aprendido muita coisa aqui. Muito obrigada
Ivone

Enviado: 11 Mar 2007 18:13
por Stanis Luksys
Olá,

Este é um exemplo que faz parte do pacote da lib videocapture, criada por Marcos Gambeta...

Também cheguei a testar, mas pra ser sincero não gostei muito dos resultados. De qualquer forma é um avanço.

Quanto a acessar nativamente pelo xHarbour, eu uso a função DllCall.

Ok!

Re: Capturar imagem da Webcam

Enviado: 14 Jan 2010 12:31
por JAIR RANGEL
Olá, Pessoal !

Estou pesquisando como capturar imagem pela webcam e gravar no Cadastro do Cliente ou cadastro de Funcionário.
Ao ler este tópico, percebi que os posts são bem antigos (2007). Será que temos algo novo para ser utilizado com Harbour+MiniGUI:

A lib videocapture.lib mencionada acima, não consegui localizar na web.
Se alguem tiver o endereço, por favor, me passe. Gostaria de avaliar.

Sobre a dllcal, não entendi como utilizar.

Se os caros colegas puderem dar algumas dicas, agradeço muito !

Até....... :xau
Harbour+MiniGUI+BrMake - Roberto Lopes

Re: Capturar imagem da Webcam

Enviado: 14 Jan 2010 12:56
por Toledo
Segue em anexo um exemplo usando eztw32.dll.

Abraços,

Re: Capturar imagem da Webcam

Enviado: 14 Jan 2010 14:01
por JAIR RANGEL
Boa tarde, Toledo !

Obrigado.
Vou testar....

Um abraço !
:)Pos

Re: Capturar imagem da Webcam

Enviado: 17 Jan 2010 23:29
por JAIR RANGEL
Olá, Toleto !

Ficou legal a EZTW32.DLL !
Vou testar nos Clientes !

Obrigado ! :{

Capturar imagem da Webcam

Enviado: 15 Mar 2011 21:48
por Pablo César
Muito bom o seu exemplo Toledo !
Se bem que o formato é sempre bmp, tem como salvar em formato jpg ? Não digo simplesmente mudar a extensão e sim compactar o arquivo. Tem cómo em HMG ? Outra coisa, tem como fazer com que o botão capture e não passar pelo aplicativo da webcam ? Encontrei na web um utilitário que dá para converter bmp em jpg desde a linha de comando, mas queria evitar isto e passar utilizar os próprios recursosda aplicação HMG.

Re: Capturar imagem da Webcam

Enviado: 16 Mar 2011 08:31
por Toledo
Olá Pablo, eu não conheço todas as funções da EZTW32.DLL, então não sei dizer se é possível gerar arquivos JPG ou capturar a imagem sem passar pelo aplicativo da webcam. Mas no caso do JPG, pode-se usar as funções da lib FreeImage da Contrib do Harbour para salvar o arquivo BMP em JPG... acho que dá pra fazer isto.

Abraços,

Capturar imagem da Webcam

Enviado: 16 Mar 2011 20:38
por Pablo César
Mas no caso do JPG, pode-se usar as funções da lib FreeImage da Contrib do Harbour para salvar o arquivo BMP em JPG... acho que dá pra fazer isto.
Pois é... obrigado pela dica, foi possível sim ! Deu-me trabalho de entender, mas conseguí implementar com HMG graças ao exemplo do Grigory Filatov que compilou sem erros, cómo é bom olhar o error.log... pois percebí que faltava indicar a propria lib libFreeImage.a além de colocar o include freeimage.ch e disponibilizar a dll no diretório corrente...

Encontrei uma documentação sobre EZTwain que poderá ser útil a outros colegas, em: http://www.eztwain.com/pub/eztp/EZTwain_User_Guide.pdf

Lembro um caso de um colega precisar converter os arquivos de toda uma pasta, não lembro (vou procurar) mas o meu conselho que ele poderia utilizar um aplicativo de conversão desde a linha de comandos e bem poderia ser executado em lote através de arquivo batch. Aqui está o BMP2JPG.exe que econtrei em: http://www.microtom.net/?dl_id=3

Mas é ótimo quando descobrimos como fazer funcionar, claro que a ajuda dos colegas daqui sempre são certeiras... agora fico cada vez mais surpreso ao ver quanto trabalho OPENSOURCE tem disponível. Claro que temos que correr atrás do conhecimento... mas isso cada vez é mais encurtado quando encontramos mais e mais volume na internet... Estou gostando muito trabalhar com Harbou MiniGui.