Bryant Postado Junho 28, 2010 Denunciar Share Postado Junho 28, 2010 Existe algum componente que transforme de um formato qualquer para raw image?Alguém sabe?Obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Junho 29, 2010 Denunciar Share Postado Junho 29, 2010 Existe algum componente que transforme de um formato qualquer para raw image?A conversão não é feita atraves de componente mas de códigoSe o lance ainda é biometria, baixe o sdk da Nitgen que é gratuitoSegue o link para o SDK da NitGen http://www.nitgen.com.br/download/eNBSP_SDK_4.81.zip ou http://www.nitgen.com.br/Produtos/HamsterI.aspxhttp://www.4shared.com/file/115148868/f0f6...n-HamsterI.htmlabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bryant Postado Junho 29, 2010 Autor Denunciar Share Postado Junho 29, 2010 Ainda é sobre biometria sim!Estou há tempos olhando este da nitgen, vou olhar com mais calma!Não sabia que ele podia trabalhar com .wsq.Obrigado mais uma vez Jhonas. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bryant Postado Junho 29, 2010 Autor Denunciar Share Postado Junho 29, 2010 Reparei aqui que essa biblioteca que trabalha com imagens precisa da "NImgConv.dll" que é ela que possui as funções que preciso "NBioAPI_ImgConvRawToWSQBuf"Sabe onde posso encontrar?Obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Junho 29, 2010 Denunciar Share Postado Junho 29, 2010 Reparei aqui que essa biblioteca que trabalha com imagens precisa da "NImgConv.dll" que é ela que possui as funções que preciso "NBioAPI_ImgConvRawToWSQBuf"Sabe onde posso encontrar?No primeiro link ou http://www.gegereka.com/?query=NImgConv%20dllabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bryant Postado Junho 29, 2010 Autor Denunciar Share Postado Junho 29, 2010 Ainda não entendi direito como utilizar as funções de ImgConverter.Já instalei tudo e agora quero utilizar a função "NBioAPI_ImgConvWSQToRawBuf", ela fica dentro da .dll? Percebi que já possuo no system32, pensei que fosse algo da própria nitgen *perdido* hahahaComo utilizo qualquer uma das funções de imgconverter deles?Obrigado mais uma vez Jhonas, ta salvando minha vida! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Junho 29, 2010 Denunciar Share Postado Junho 29, 2010 Como utilizo qualquer uma das funções de imgconverter deles?Leia o manualhttp://www.nitgen.com.br/download/Guia_de_...P_%20Delphi.pdfabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bryant Postado Junho 29, 2010 Autor Denunciar Share Postado Junho 29, 2010 Peguei aqui os manuais mas este por exemplo explica como iniciar, e utilizar o enroll e o verify.No meu caso só quero utilizar as funções que utilizam as imagems. Mas minha dúvida é básica, só quero saber como as chamo ^^Já instalei tudo mas não sei como posso utilizar estas funções, dou uses na unit mas não possui estas funções das imagens. Esta que é a dúvida.Obrigado Jhonas. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Junho 29, 2010 Denunciar Share Postado Junho 29, 2010 No meu caso só quero utilizar as funções que utilizam as imagems. Mas minha dúvida é básica, só quero saber como as chamo ^^Eu te passei apenas uma das apostilas, voce tem que entrar no site e baixar as outras que tratam desse assuntoVeja na área de downloadhttp://www.nitgen.com.br/Produtos/HamsterI.aspxpor exemplo: neste voce vai achar sobre esse tópicoMódulo Image ConversionO módulo de conversão de imagem provê algumas APIs que pode ser utilizadas para converterdados da imagem da impressão digital para vários tipos de formatos de imagens.http://www.nitgen.com.br/download/Guia_de_...mento_eNBSP.pdfabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bryant Postado Julho 7, 2010 Autor Denunciar Share Postado Julho 7, 2010 (editado) Acho que consegui alguma coisa...function WSQ2Raw(WsqBuffer: PByte; out RawBuffer: OleVariant; out Size: Integer; out Width: Integer; out Height: Integer): Integer; var ImgConv : THandle; WSQToRawBuf : TImgConvWSQToRawBuf; OutBuffer : array[0..420000] of Byte; OutBufferPtr: PByte; Ix : Integer; const IMG_DLL = 'NImgConv.dll'; RAW_ARRAY = 420000; begin Result := -1; ImgConv := LoadLibrary(IMG_DLL); try if (ImgConv <> 0) then begin WSQToRawBuf := GetProcAddress(ImgConv, 'NBioAPI_ImgConvWSQToRawBuf'); OutBufferPtr := PByte(@OutBuffer); if @WSQToRawBuf <> nil then begin Result := WSQToRawBuf(WsqBuffer, OutBufferPtr, Size, Width, Height); RawBuffer := VarArrayCreate([0,RAW_ARRAY], varVariant); for Ix := 0 to RAW_ARRAY do RawBuffer[Ix] := OutBuffer[Ix]; end; end; finally FreeLibrary(ImgConv); end; end; Minha dúvida é aqui: RawBuffer := VarArrayCreate([0,RAW_ARRAY], varVariant); for Ix := 0 to RAW_ARRAY do RawBuffer[Ix] := OutBuffer[Ix];* Assim ele não pega os valoresComo eu posso passar um array de byte para um olevariant?Obrigado Jhonas mais uma vez! ;) Editado Julho 7, 2010 por Bryant Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Julho 7, 2010 Denunciar Share Postado Julho 7, 2010 Como eu posso passar um array de byte para um olevariant?exemplo://delphi convert a byte array to a string function ConvertByteArrayToString(const V:OleVariant):string; var count: Integer; ptr: Pointer; begin Result:=''; if VarIsNull(V) then Exit; count := VarArrayHighBound(V, 1) + 1; SetLength(Result,Count); ptr := VarArrayLock(V); try Move(ptr^,Result[1],Count); finally VarArrayUnlock(V); end; end;outros exemploshttp://www.spectrum.eti.br/news/converter_...rray_em_tstreamhttp://www.spectrum.eti.br/news/taxonomy/term/13http://www.delphigroups.info/2/11/1028662.htmlabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bryant Postado Julho 7, 2010 Autor Denunciar Share Postado Julho 7, 2010 Mais uma vez obrigado Jhonas.Pra quem tiver a mesma dúvidaRawBuffer := VarArrayCreate( [0,RAW_ARRAY], varByte ); P := varArrayLock( RawBuffer ); Move( OutBuffer[0], P^, Length(OutBuffer) ); VarArrayUnlock( RawBuffer ); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bryant Postado Julho 15, 2010 Autor Denunciar Share Postado Julho 15, 2010 Só para evitar de criar um outro tópico..Estas conversões são tão erradas assim?Estou utilizando um .wsq perfeito e quando faço a conversão para .bmp ou .jpg eu tenho um retorno do tipo:Utilizando as funçõesfunction ImgConvWSQToRawBuf(WsqBuffer: PByte; RawBuffer: PByte; var Size: Integer; var Width: Integer; var Height: Integer): Integer; cdecl; external 'NImgConv.dll' name 'NBioAPI_ImgConvWSQToRawBuf'; function ImgConvRawToBmpBuf(RawBuffer: PByte; Width: Integer; Height: Integer; BmpBuffer: PByte; out Size: Integer): Integer; cdecl; external 'NImgConv.dll' name 'NBioAPI_ImgConvRawToBmpBuf'; E uma função para fazer isto: class function TImgConverter.WSQ2Raw(WsqBuffer: PByte): Integer; var OutBufferPtr: PByte; BmpBuffer : PByte; BmpSize : Integer; OutBuffer : array of Byte; RawBuffer : array of Byte; Size, Width, Height: Integer; ArqWsq : TFileStream; tmp : String; const RAW_ARRAY = 390000; BMP_IMG = 'C:\Users\user\Desktop\convertido.jpg'; begin try //BMP SetLength(OutBuffer, RAW_ARRAY+1); BmpBuffer := PByte(@(OutBuffer[0])); //RAW SetLength(RawBuffer, RAW_ARRAY+1); OutBufferPtr := PByte(@(RawBuffer[0])); Result := ImgConvWSQToRawBuf(WsqBuffer, OutBufferPtr, Size, Width, Height); //WSQ -> RAW Result := ImgConvRawToBmpBuf(OutBufferPtr, Width, Height, BmpBuffer, BmpSize); //RAW -> BMP try ArqWsq := TFileStream.Create(BMP_IMG, fmCreate); ArqWsq.Write(OutBuffer[0], Length(OutBuffer)); finally if Assigned(ArqWsq) then FreeAndNil ( ArqWsq ); end; except Result := -1; end; end;Mas a conversão é feita pessimamente, ele estraga completamente a imagem, fora que depois da execução, um tempinho depois o programa estoura (fiz um executável APENAS com isso).Tem alguma idéia do porque de uma conversão tão mal feita?Obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Julho 15, 2010 Denunciar Share Postado Julho 15, 2010 Se voce reparou a imagem está sobreposta ... isso por ser causado pelo comando:RAW_ARRAY = 390000;experimente diminuir esse tamanho para 50000 .... faça variações no tamanho e testeabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bryant Postado Julho 15, 2010 Autor Denunciar Share Postado Julho 15, 2010 (editado) Não tinha reparado realmente, obrigado Jhonas.O ruim é que ele não deixa diminuir o tamanho, só se for bem pouco do tipo 380000, senão ele executa a primeira função e logo termina sem fazer nada.Porque no exemplo de C++ eles realmente utilizam 390000:lpBMPBuf = new unsigned char[600 * 650]; Po muito estranho isso não é oO ...meio sem idéias :huh: EDIT: o retorno do size está desta maneira: RAW_ARRAY = 384400; JPG_ARRAY = 323015; BMP_ARRAY = 385478;Este é o out de cada uma das funções, realmente o valor 390000 está certo aparentemente, mas ele quebra mesmo assim =/ Editado Julho 15, 2010 por Bryant Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Julho 15, 2010 Denunciar Share Postado Julho 15, 2010 Disponibiliza para mim uma imagem .wsq para teste.abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bryant Postado Julho 15, 2010 Autor Denunciar Share Postado Julho 15, 2010 (editado) Link para um .rar com 5 samples:http://www.sendspace.com/file/0o9elnObrigado pela ajuda toda ai Jhonas! ;)Aproveito e vou jogar minha unit toda aqui pra se você puder testar:unit UImgConverter; interface uses Classes, Types; type TImgConverter = class public class function WSQ2JpgBmp(WsqBuffer: PByte): Integer; end; function ImgConvWSQToRawBuf(WsqBuffer: PByte; RawBuffer: PByte; var Size: Integer; var Width: Integer; var Height: Integer): Integer; cdecl; external 'NImgConv.dll' name 'NBioAPI_ImgConvWSQToRawBuf'; function ImgConvRawToBmpBuf(RawBuffer: PByte; Width: Integer; Height: Integer; BmpBuffer: PByte; out Size: Integer): Integer; cdecl; external 'NImgConv.dll' name 'NBioAPI_ImgConvRawToBmpBuf'; function ImgConvRawToJpgBuf(RawBuffer: PByte; Width: Integer; Height: Integer; Quality: Integer; BmpBuffer: PByte; out Size: Integer): Integer; cdecl; external 'NImgConv.dll' name 'NBioAPI_ImgConvRawToJpgBuf'; implementation uses Windows, Dialogs, SysUtils, ActiveX, Variants, NBioBSPCOMLib_TLB; {================================================================= CONVERTE UMA IMAGEM WSQ E SALVA EM BMP E JPG =================================================================} class function TImgConverter.WSQ2JpgBmp(WsqBuffer: PByte): Integer; var OutBufferPtr: PByte; BmpBuffer : PByte; JpgBuffer : PByte; OutBufferJpg: array of Byte; OutBufferBmp: array of Byte; RawBuffer : array of Byte; ArqJpg : TFileStream; ArqBmp : TFileStream; BmpSize : Integer; JpgSize : Integer; Size : Integer; Width : Integer; Height : Integer; NomeArquivo : string; const MAX_ARRAY = 390000; JPG_QUALITY = 75; IMG = 'C:\Users\user\Desktop\convertidas\convertido'; begin try //RAW SetLength(RawBuffer, MAX_ARRAY); OutBufferPtr := PByte(@(RawBuffer[0])); //BMP SetLength(OutBufferBmp, MAX_ARRAY); BmpBuffer := PByte(@(OutBufferBmp[0])); //JPG SetLength(OutBufferJpg, MAX_ARRAY); JpgBuffer := PByte(@(OutBufferJpg[0])); Result := ImgConvWSQToRawBuf(WsqBuffer, OutBufferPtr, Size, Width, Height); //WSQ -> RAW Result := ImgConvRawToJpgBuf(OutBufferPtr, Width, Height, JPG_QUALITY, JpgBuffer, JpgSize); //RAW -> JPG Result := ImgConvRawToBmpBuf(OutBufferPtr, Width, Height, BmpBuffer, BmpSize); //RAW -> BMP try //Criando .jpg e .bmp NomeArquivo := IMG + FloatToStr( Now ); ArqJpg := TFileStream.Create(NomeArquivo + '.jpg', fmCreate); ArqJpg.Write(OutBufferJpg[0], JpgSize); ArqBmp := TFileStream.Create(NomeArquivo + '.bmp', fmCreate); ArqBmp.Write(OutBufferBmp[0], BmpSize); finally if Assigned(ArqBmp) then FreeAndNil ( ArqBmp ); if Assigned(ArqJpg) then FreeAndNil ( ArqJpg ); end; except on e:Exception do begin ShowMessage( e.Message ); Result := -1; end; end; end; end. Editado Julho 15, 2010 por Bryant Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Julho 15, 2010 Denunciar Share Postado Julho 15, 2010 Bryant... testei suas imagens com 2 programas em delphi que baixei cognaxonhttp://www.cognaxon.com/downloads/WSQ_Delphi.ziphttp://www.cognaxon.com/downloads/setupWSQ.exeos programas estão com os fontes, e é necessario que voce use a biblioteca chamada WSQ_library.dll ( $ 252 ) esse programa ( delphi ) consegue converter WSQ em outras extensões ... peguei as suas imagens e converti para JPEGme diga como fazer upload no site que coloco as figuras para voce ver como ficaramabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bryant Postado Julho 20, 2010 Autor Denunciar Share Postado Julho 20, 2010 Jhonas desculpe pela demora na resposta.Conhecia o cognaxon já, realmente para conversões de boa qualidade, é preciso utilizar um componente pago.Acabei comprando licenças da griaule mesmo, excelente componente.Muito obrigado por toda a ajuda! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Bryant
Existe algum componente que transforme de um formato qualquer para raw image?
Alguém sabe?
Obrigado.
Link para o comentário
Compartilhar em outros sites
18 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.