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