Capturar imagem da Webcam

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Ivone Lopes da Silva
Colaborador
Colaborador
Mensagens: 80
Registrado em: 23 Out 2004 21:57
Localização: São João da Boa Vista/SP
Curtiram: 1 vez

Capturar imagem da Webcam

Mensagem 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
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem por Stanis Luksys »

Olá,

Como você está acessando a DLL?

Procure acessar sempre nativamente pelo xHarbour, é o que costuma dar mais certo.
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinha

Se não me engano a EZTW32.DLL é para captura de imagem em scanner, to certo?
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Ivone Lopes da Silva
Colaborador
Colaborador
Mensagens: 80
Registrado em: 23 Out 2004 21:57
Localização: São João da Boa Vista/SP
Curtiram: 1 vez

Mensagem 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.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem 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.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem 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

//--------------------------------------------------------------------------//
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Ivone Lopes da Silva
Colaborador
Colaborador
Mensagens: 80
Registrado em: 23 Out 2004 21:57
Localização: São João da Boa Vista/SP
Curtiram: 1 vez

Mensagem 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
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem 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!
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Avatar do usuário
JAIR RANGEL
Usuário Nível 3
Usuário Nível 3
Mensagens: 178
Registrado em: 19 Jul 2005 16:01
Localização: RIO DE JANEIRO
Contato:

Re: Capturar imagem da Webcam

Mensagem 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
MINIGUI + HARBOUR + BRMAKE + CDX
CLIPPER 5.2E + VISUALLIB 2 + BLINKER
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Capturar imagem da Webcam

Mensagem por Toledo »

Segue em anexo um exemplo usando eztw32.dll.

Abraços,
Anexos
webcam.zip
Exemplo para capturar imagem pela webcam com MiniGui.
(371.01 KiB) Baixado 715 vezes
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
JAIR RANGEL
Usuário Nível 3
Usuário Nível 3
Mensagens: 178
Registrado em: 19 Jul 2005 16:01
Localização: RIO DE JANEIRO
Contato:

Re: Capturar imagem da Webcam

Mensagem por JAIR RANGEL »

Boa tarde, Toledo !

Obrigado.
Vou testar....

Um abraço !
:)Pos
MINIGUI + HARBOUR + BRMAKE + CDX
CLIPPER 5.2E + VISUALLIB 2 + BLINKER
Avatar do usuário
JAIR RANGEL
Usuário Nível 3
Usuário Nível 3
Mensagens: 178
Registrado em: 19 Jul 2005 16:01
Localização: RIO DE JANEIRO
Contato:

Re: Capturar imagem da Webcam

Mensagem por JAIR RANGEL »

Olá, Toleto !

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

Obrigado ! :{
MINIGUI + HARBOUR + BRMAKE + CDX
CLIPPER 5.2E + VISUALLIB 2 + BLINKER
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Capturar imagem da Webcam

Mensagem 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.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Capturar imagem da Webcam

Mensagem 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,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Capturar imagem da Webcam

Mensagem 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.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Responder