TPanel
Bom dia.
Utilizo um TPanel para receber a imagem da digital. Esta ok. Porém gostaria de saber como faço para salvar essa imagem gerada no TPanel.
abraços!
Fernando Ramos
Curtidas 0
Respostas
Wilson Junior
05/10/2010
Como você atribui a imagem ao TPanel?
GOSTEI 0
Wilson Junior
05/10/2010
Como você atribui a imagem ao TPanel?
Pois dependendo da maneira que você atribui a imagem no TPanel, você pode fazer o caminho reverso.
Aguardo retorno.
Pois dependendo da maneira que você atribui a imagem no TPanel, você pode fazer o caminho reverso.
Aguardo retorno.
GOSTEI 0
Fernando Ramos
05/10/2010
Atribuo assim:
objNBioBSP := CreateOleObject('NBioBSPCOM.NBioBSP'); objDevice := objNBioBSP.Device; objDevice.Open(NBioBSP_DEVICE_ID_AUTO_DETECT); If objDevice.ErrorCode = NBioBSPERROR_NONE Then begin objExtraction := objNBioBSP.Extraction; objExtraction.FingerWnd := ImgDigital.Handle; //AQUI ATRIBUO A DIGITAL AO TPANEL objExtraction.WindowStyle := NBioAPI_WINDOW_STYLE_INVISIBLE; objExtraction.capture(); If objExtraction.ErrorCode = NBioBSPERROR_NONE Then begin TxtDigitalCodigo.Text := objExtraction.TextEncodeFIR; BtnConfirmar.Enabled := true; TxtMao.Enabled := true; TxtDedos.Enabled := true; TxtSituacoes.Enabled := true; TxtMao.SetFocus; end; objDevice.Close(NBioBSP_DEVICE_ID_AUTO_DETECT); end else begin Application.MessageBox('Leitor digital não encontrado','Nenhum dispositivo conectado',16); objNBioBSP := 0; objDevice.Close(NBioBSP_DEVICE_ID_AUTO_DETECT); end;
GOSTEI 0
Wilson Junior
05/10/2010
O teu ImgDigital é que tipo de copmponente? Se for um TImage, é só fazer "imgPapelParede.Picture.SaveToFile('C:\MinhaImagem.bmp');".
Espero ter colaborado.
Espero ter colaborado.
GOSTEI 0
Fernando Ramos
05/10/2010
O ImgDigital é um TPANEL!
GOSTEI 0
Wilson Junior
05/10/2010
Veja se este link te ajuda http://forum.devmedia.com.br/viewtopic.php?t=86138&sid=f09a04307743447554ccb829ad290a57
Espero ter colaborado.
Espero ter colaborado.
GOSTEI 0
Fernando Ramos
05/10/2010
Já tinha visto este post.
Pelo que entendi ali é processo inverso. Ele precisa colocar uma imagem no TPANEL em execução. Eu já tenho a imagem (digital) em execução no TPANEL e quero salvar em um arquivo de imagem no computador!
abraços!
Pelo que entendi ali é processo inverso. Ele precisa colocar uma imagem no TPANEL em execução. Eu já tenho a imagem (digital) em execução no TPANEL e quero salvar em um arquivo de imagem no computador!
abraços!
GOSTEI 0
Fernando Ramos
05/10/2010
Boa tarde.
Alguém poderia ajudar? Abraços!
Alguém poderia ajudar? Abraços!
GOSTEI 0
Fernando Ramos
05/10/2010
Sem querer ser chato...rs..rs..
Se alguém puder indicar algum material...site....dica.... agradeço!
abraços!
Se alguém puder indicar algum material...site....dica.... agradeço!
abraços!
GOSTEI 0
Leonardo Xavier
05/10/2010
Você ja tentou colocar um componente imagem dentro do Tpanel, e nomar o seu objeto de imagem com o mesmo nome de seu Tpanel?
GOSTEI 0
Fernando Ramos
05/10/2010
Não tentei...mas acredito que irá dar erro não? Mesmo nome....
Agora....não dando erro... o que acontecerá? Só por ser o mesmo nome... a imagem da digital que aparece no TPanel aparecerá tb no TImage?
abraços!
Agora....não dando erro... o que acontecerá? Só por ser o mesmo nome... a imagem da digital que aparece no TPanel aparecerá tb no TImage?
abraços!
GOSTEI 0
Leonardo Xavier
05/10/2010
Em seu Tpanel acrescente o 1 ou outro numero no nome dele e deixe apenas o bjeto de imagem com o nome do seu Tpanel.
GOSTEI 0
Fernando Ramos
05/10/2010
Vc sugere que o meu TPANEL se chama TPANEL1 e o meu TIMAGE se chame TPANEL e isso fará com que a imagem da digital...aparece tb no TIMAGE ?
Sem código algum?
Sem código algum?
GOSTEI 0
Leonardo Xavier
05/10/2010
O que estou sujerindo é o seguinte:
objNBioBSP := CreateOleObject('NBioBSPCOM.NBioBSP'); objDevice := objNBioBSP.Device; objDevice.Open(NBioBSP_DEVICE_ID_AUTO_DETECT); If objDevice.ErrorCode = NBioBSPERROR_NONE Then begin objExtraction := objNBioBSP.Extraction; objExtraction.FingerWnd :=Nome de seu componente de imagem.Handle; //AQUI ATRIBUO A DIGITAL AO TPANEL objExtraction.WindowStyle := NBioAPI_WINDOW_STYLE_INVISIBLE; objExtraction.capture(); If objExtraction.ErrorCode = NBioBSPERROR_NONE Then begin TxtDigitalCodigo.Text := objExtraction.TextEncodeFIR; BtnConfirmar.Enabled := true; TxtMao.Enabled := true; TxtDedos.Enabled := true; TxtSituacoes.Enabled := true; TxtMao.SetFocus; end; objDevice.Close(NBioBSP_DEVICE_ID_AUTO_DETECT); end else begin Application.MessageBox('Leitor digital não encontrado','Nenhum dispositivo conectado',16); objNBioBSP := 0; objDevice.Close(NBioBSP_DEVICE_ID_AUTO_DETECT); end;
GOSTEI 0
Fernando Ramos
05/10/2010
Boa tarde.
Haa sim... mas... o TIMAGE não tem a opção .handle!
abraços!
Haa sim... mas... o TIMAGE não tem a opção .handle!
abraços!
GOSTEI 0
Leonardo Xavier
05/10/2010
você utiliza o sistema deste site? http://www.nitgen.com.br
GOSTEI 0
Fernando Ramos
05/10/2010
O sistema não... apenas o leitor HAMSTER1... o sistema esta sendo desenvolvido por mim mesmo... utilizando os manuais da nitgen!
GOSTEI 0
Leonardo Xavier
05/10/2010
Tente da seguinte forma:
//procedimento para ser acrescentado a sua. var buffer: THandle; bmp: TBitmap; memstream: TMemoryStream; begin buffer:= objExtraction.FingerWnd; if (buffer = 0) then exit; // Se houver Erro durante o loading bmp.Handle := buffer; memstream := TMemoryStream.create; try bmp.SaveToStream(memstream); memstream.position := 0; bmp.LoadFromStream(memstream); finally memstream.free; end; MyCanvas.Draw(0, 0, bmp); bmp.Free; // libera o espaço alocado end;
GOSTEI 0
Dorivan Sousa
05/10/2010
Boa tarde.
Haa sim... mas... o TIMAGE não tem a opção .handle!
abraços!
Haa sim... mas... o TIMAGE não tem a opção .handle!
abraços!
tópico antigo mas eu passei pela mesma situacao agora e achei essa solucao, vc pode pegar o bitmap do panel
var mycanvas : TCanvas; DC : HDC; begin DC := GetDC(pic.Handle); mycanvas := Tcanvas.create; myCanvas.Handle := DC; image1.Canvas.CopyRect(Rect(1,1,pic.Width-1,pic.Height-1),myCanvas,Rect(1,1,pic.Width-1,pic.Height-1)); mycanvas.Free; ReleaseDC(pic.Handle,DC);
GOSTEI 0
Dorivan Sousa
05/10/2010
Boa tarde.
Haa sim... mas... o TIMAGE não tem a opção .handle!
abraços!
Haa sim... mas... o TIMAGE não tem a opção .handle!
abraços!
tópico antigo mas vai ai a solucao
var mycanvas : TCanvas; DC : HDC; begin DC := GetDC(pic.Handle); mycanvas := Tcanvas.create; myCanvas.Handle := DC; image1.Canvas.CopyRect(Rect(1,1,pic.Width-1,pic.Height-1),myCanvas,Rect(1,1,pic.Width-1,pic.Height-1)); mycanvas.Free; ReleaseDC(pic.Handle,DC);
GOSTEI 0