Quantcast
Channel: FiveTech Software tech support forums
Viewing all articles
Browse latest Browse all 26233

Problemas biometria Sdk 2009 Griaule

$
0
0
#Include "FiveWin.ch" #Include "grFinger.ch" **************************************//*************************************** FUNCTION BuscaDigital( cQualDedo , oImagemDedo ) **************************************//*************************************** LOCAL oDlgActiveX LOCAL oFoto LOCAL cFoto := oPub:wPathBmp + "DigitalVazia.bmp" LOCAL cMyContextID := "0" PRIVATE lEmOperacao := .F. DEFINE DIALOG oDlgActiveX RESOURCE "SV_DIGITAL" TITLE "Capturar Digital" // FONT oWnd:oFont ICON oPub:oIconeSv BRUSH oPub:oBrushS TRANSPARENT REDEFINE BITMAP oFoto ID 900 OF oDlgActiveX FILENAME cFoto ADJUST REDEFINE BUTTON oBt ID 950 OF oDlgActiveX ACTION ( oDlgActivex:End() ) ACTIVATE DIALOG oDlgActiveX CENTERED ON INIT ( oDlgActiveX:lHelpIcon := .F. , GrFingerInitialize( oDlgActiveX ,oFoto ,oImagemDedo ,cMyContextID , cQualDedo ) ) ; VALID GrFingerDestroyContext( cMyContextID ) **************************************//*************************************** STATIC FUNCTION GrFingerInitialize( oDlgActiveX ,oFoto ,oImagemDedo ,cMyContextID , cQualDedo ) **************************************//*************************************** LOCAL nErr,oFinger IF IsActiveX("GrFingerX.GrFingerXCtrl.1") oFinger := TActiveX():New( oDlgActiveX, "GrFingerX.GrFingerXCtrl.1",0,0,.2,.2) oDlgActiveX:oClient = oFinger nErr = oFinger:Do("Initialize") If nErr = 0 oFinger:Do("CapInitialize") oFinger:Do("CreateContext", cMyContextID ) oFinger:bOnEvent = { | event, aParams, pParams | EventInfo( event, aParams , oFinger ,oFoto ,oImagemDedo ,oDlgActiveX ,cMyContextID , cQualDedo ) } ELSE MSGSTOP("Não foi encontrado o controle activex GrFingerX.GrFingerXCtrl.",;"Inicialização abortada...") RETURN .F. ENDIF ELSE MSGStop("Para utilização do Leitor Biométrico é necessário" + CRLF +;"a instalação de seu SDK Gfinger","ATENÇÃO","STOP") ENDIF RETURN .T. **************************************//*************************************** STATIC FUNCTION GrFingerDestroyContext( cMyContextID ) **************************************//*************************************** LOCAL nErr oFinger:Do( "CapFinalize" ) oFinger:Do( "Finalize" ) oFinger:Do( "DestroyContext", MyContextID ) RETURN .T. **************************************//*************************************** FUNCTION EventInfo( event, aParams , oFinger ,oFoto ,oImagemDedo ,oDlgActiveX ,cMyContextID , cQualDedo ) **************************************//*************************************** LOCAL cEvent := cValToChar( event ) LOCAL cTemplate, nTemplateSize, nRet IF .NOT. lEmOperacao IF cEvent == "SensorPlug" .and. aParams[1] != "File" oFinger:Do("CapStartCapture",AllTrim(aParams[1])) ENDIF IF cEvent == "SensorUnplug" oFinger:Do("CapStopCapture",AllTrim(aParams[1])) ENDIF IF cEvent == "ImageAcquired" lEmOperacao := .T. FERASE( oPub:wPathBmp + "Dedo.BMP" ) nTemplateSize := 10000 cTemplate := SPACE(10000) *** Usando somente a Sintax do ActiveX Em qualquer das sintax da o problema de vir zerado * Assim funciona * nIni := oFinger:ExtractEx( cImagem, aParams[2], aParams[ 3], 500, cTemplate, @nTemplateSize, 0, GR_FORMAT_ISO ) * nIni := oFinger:DO("Extract", aParams[4], aParams[2], aParams[ 3], 500, cTemplate, @nTemplateSize, cMyContextID ) nIni := oFinger:Extract( aParams[4], aParams[2], aParams[ 3], 500, cTemplate, @nTemplateSize, cMyContextID ) **** Aqui da erro o Len(AllTrim(cTemplate)) da Zero ? "Extract",nIni,Len(AllTrim(cTemplate)) * Ou desta maneira * nIni := oFinger:DO("ExtractEx", aParams[4], aParams[2], aParams[ 3], 500, cTemplate, @nTemplateSize, 0 , GR_FORMAT_DEFAULT ) // GR_FORMAT_ANSI nIni := oFinger:ExtractEx( aParams[4], aParams[2], aParams[ 3], 500, cTemplate, @nTemplateSize, cMyContextID , GR_FORMAT_DEFAULT ) // GR_FORMAT_ANSI ? "ExtractEx",nIni,Len(AllTrim(cTemplate)) nIni := oFinger:Do("CapSaveRawImageToFile",aParams[ 4],aParams[ 2], aParams[ 3], oPub:wPathBmp + "Dedo.BMP",GRCAP_IMAGE_FORMAT_BMP) *? "CapSaveRaw",nIni oFoto:LoadBmp( oPub:wPathBmp + "Dedo.BMP" ) // cargo la imagen guardada en la anterior línea oFoto:Refresh() ret := oFinger:DO("IdentifyPrepare", cTemplate, cMyContextID ) *** Devido a isso da erro -5 ? "IdentifyPrepare",ret *ret := oFinger:Identify( cTemplate, @nIdScore , 0 ) ret := oFinger:DO("Identify", cTemplate, @nIdScore , cMyContextID ) ? "Identify",ret *** Ou usando a sintax das Dlls abaixo. cLibFinger := LoadLibrary("GrFinger.dll") GrInitialize() TemplateSize := 10000 cTemplate := SPACE(10000) * Assim com o @cTemplate ret:= GrExtract( aParams[ 4], aParams[ 2], aParams[ 3], aParams[ 5], @cTemplate, @nTemplateSize, 0 ) Assim sem cTemplate ret:= GrExtract( aParams[ 4], aParams[ 2], aParams[ 3], aParams[ 5], @cTemplate, @nTemplateSize, 0 ) select("Personal") APPEND BLANK IF Personal->(rlock()) REPLACE Huella WITH cTemplate Personal->(dbcommit()) Personal->(dbunlock()) ENDIF GO TOP nIdScore := 0 WHILE !eof() GrIdentifyPrepare( cTemplate, 0 ) nId:= GrIdentify( Personal->Huella, @nIdScore , 0 ) ? nId é sempre 0 Zero IF nId = 1 // Ok msgwait("Digltal encontrada!","Atenção",1) ELSE msgwait("Digital não encontrado!","Atenção",1) ENDIF ** oU nId:= GrVerify( cTemplate , Personal->Huella, @nIdScore , 0 ) ? "nId",nId Skip ENDDO GrFinalize() FreeLibrary(xLib) ENDIF ENDIF RETURN NIL DLL32 FUNCTION GrInitialize() AS LONG PASCAL FROM "_GrInitialize@0" LIB xLib DLL32 FUNCTION GrFinalize() AS LONG PASCAL FROM "_GrFinalize@0" LIB xLib DLL32 FUNCTION GrExtract( @rawImage AS LONG, width AS LONG, height AS LONG, res AS LONG, ttpt AS LPSTR, @ttptSize AS LONG , context AS LONG ) AS LONG PASCAL FROM "_GrExtract@28" LIB xLib DLL32 FUNCTION GrIdentifyPrepare( ttpt AS LPSTR, context AS LONG ) AS LONG PASCAL FROM "_GrIdentifyPrepare@8" LIB xLib DLL32 FUNCTION GrIdentify( @ttpt AS LPSTR, @Idscore AS LONG, context AS LONG ) AS LONG PASCAL FROM "_GrIdentify@12" LIB xLib DLL32 FUNCTION GrVerify( ttpt AS LPSTR, qtpt AS LPSTR, @Idscore AS LONG, context AS LONG ) AS LONG PASCAL FROM "_GrVerify@16" LIB xLib De maneira nenhuma vai. Alguem poderia me orientar onde estou errando ?

Viewing all articles
Browse latest Browse all 26233

Trending Articles