Capturar imagem da Webcam
Moderador: Moderadores
-
Ivone Lopes da Silva
- 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
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
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

- Mensagens: 1329
- Registrado em: 18 Jun 2005 03:04
- Localização: São Paulo
- Contato:
Olá,
Como você está acessando a DLL?
Procure acessar sempre nativamente pelo xHarbour, é o que costuma dar mais certo.
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.
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.
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Amiguinha
Se não me engano a EZTW32.DLL é para captura de imagem em scanner, to certo?
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.
@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

- Mensagens: 80
- Registrado em: 23 Out 2004 21:57
- Localização: São João da Boa Vista/SP
- Curtiram: 1 vez
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.
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.
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
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.
"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.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Amiguinha
Voce deu sorte.
Em meus 160Gb de dados encontrei estes arquivos:
Codigo exemplo de captura de video para MiniGUI, VIDEOCAPTURE.PRG:
VIDEOCAPTURE.MLK
Codigo exemplo de captura de video para HWGUI, VIDEOCAPTURE.PRG:
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
//--------------------------------------------------------------------------//
Código: Selecionar todos
GUI=Y
EXEFILE videocapture.exe
FILE videocapture.prg
LIB c:\videocapture-0.1\lib\videocapture.lib
DIROBJ obj
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.
@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

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

- Mensagens: 1329
- Registrado em: 18 Jun 2005 03:04
- Localização: São Paulo
- Contato:
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!
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.
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.
- JAIR RANGEL
- 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
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
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
CLIPPER 5.2E + VISUALLIB 2 + BLINKER
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Re: Capturar imagem da Webcam
Segue em anexo um exemplo usando eztw32.dll.
Abraços,
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
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
- JAIR RANGEL
- 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
Boa tarde, Toledo !
Obrigado.
Vou testar....
Um abraço !
:)Pos
Obrigado.
Vou testar....
Um abraço !
:)Pos
MINIGUI + HARBOUR + BRMAKE + CDX
CLIPPER 5.2E + VISUALLIB 2 + BLINKER
CLIPPER 5.2E + VISUALLIB 2 + BLINKER
- JAIR RANGEL
- 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
Olá, Toleto !
Ficou legal a EZTW32.DLL !
Vou testar nos Clientes !
Obrigado ! :{
Ficou legal a EZTW32.DLL !
Vou testar nos Clientes !
Obrigado ! :{
MINIGUI + HARBOUR + BRMAKE + CDX
CLIPPER 5.2E + VISUALLIB 2 + BLINKER
CLIPPER 5.2E + VISUALLIB 2 + BLINKER
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Capturar imagem da Webcam
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.
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.
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.
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Re: Capturar imagem da Webcam
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,
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
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
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Capturar imagem da Webcam
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...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.
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.
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.