Ir para conteúdo
Fórum Script Brasil
  • 0

Gravar Img Capturada De Webcam, E Salvá-la Em Dir


schaukoski

Pergunta

Olá. Boa Tarde.

Eu tenho um problema, que é o seguinte.

Eu consigo caputurar a imagem da webcam e transportála para DBIMAGEM tranquilamente, e já tinha feito campo BLOB em meu BD MySQL, e tudo funcionava muito bem, quando surgiu um problema de tamanho e tal, e resolvi guardá-las em um diretório, localizado na pasta do meu programa.

E cada foto, teria o valor de Código de Cadastro.

Eu tentei o seguinte e deu certo:

image2.Picture.SaveToFile('c:\fichario\foto\'+dtransf+'.bmp');
onde dtransf é a variavel que contém o valor de cod_cadastro. para load, eu tentei também
image1.Picture.LoadFromFile('c:\fichario\foto\'+dbedit1.text+'.bmp');
consegui gravar e consegui dar load. mas me deparei com o seguinte, quando selecionado um cadastro em que não existe foto no diretorio ele da erro no programa no load... como criar uma rotina que verifica, que se não existir, deixar image1 em branco mesmo... e como saber se extensao ( .bmp, .jpeg ) da img que esta no meu componente imagem2? A minha rotina de pegar imagem exterior é esta:
procedure TFormTCadCF.SpeedButton1Click(Sender: TObject);
var BMP: TBitMap;
begin
BMP := TBitMap.Create;
openpicturedialog1.Execute;
if openpicturedialog1.FileName <> '' then
begin
BMP.LoadFromFile(openpicturedialog1.filename);
image2.picture.bitmap := bmp;

mas com ela , so consigo capturar imagens que são .bmp, de que forma posso modificar para receber imagens .jpeg também?

Obrigado.

Editado por schaukoski
Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Como assim a seleção?

Tem um DBGRID, e os Dbedit's dela...

eu adicione no DBEDIT do cod_cadastro, no evento on change, o load... entendeu?...

Obrigado pela resposta. aguardo novas

Então tenta usar o Try e Except, aproveitando, vou da uma dica:

você cria um bitmap bem simples no Paint mesmo com o texto 'SEM FOTO', vamos chamar de semfoto.bmp, e quando não tiver foto carregaria esse bmp, entendeu, tipo:

  try
    image1.Picture.LoadFromFile('c:\fichario\foto\'+dbedit1.text+'.bmp');
  except
    image1.Picture.LoadFromFile('c:\fichario\foto\semfoto.bmp');
  end;
com isso não daria mas a msg de erro. ou verificar se o arquivo existe, se existe carrega:
If fileexists('c:\fichario\foto\'+dbedit1.text+'.bmp') then 
     image1.Picture.LoadFromFile('c:\fichario\foto\'+dbedit1.text+'.bmp');

bom, não sei se é bem isso que você está querendo.

Abs. Progr'amador.

B)

Link para o comentário
Compartilhar em outros sites

  • 0

Seria isso eu acho.

Se eu executar o programa atravez do PROG.exe la na pasta, por fora do delphi, não dá erro...

acontece exatamente o esperado... mas por F9 pelo delphi ele dá o erro.... isso é normal?

Obrigado !!

Ah... á respeito da forma de abrir jpeg.. você tem alguma idéia sobre isso?, Obrigado! até!

Editado por schaukoski
Link para o comentário
Compartilhar em outros sites

  • 0

Seria isso eu acho.

Mas ocorreu o mesmo problema.

Ele da um erro: ele tenta abrir o caminho com o valor da variável, e já da o erro quando não encontra.

usando o Try o erro só ocorre enquanto você tiver rodando apartir do Delphi, se você for executar direto do exe o erro não aparece.

se tivesse algo tipo

 IF image1.Picture.LoadFromFile('c:\fichario\foto\'+dbedit1.text+'.bmp')= true then
Ou sei lá.. um LOCATE ( caminho ) if exists then pararaa.. Mas valeu pela tentativa! =)
você viu a minha segunda dica usando o if fileexists, é que eu editei o post depois de ter postado: Verificar se o arquivo existe, se existe carrega:
If fileexists('c:\fichario\foto\'+dbedit1.text+'.bmp') then 
     image1.Picture.LoadFromFile('c:\fichario\foto\'+dbedit1.text+'.bmp');

Abs. Progr'amador.

B)

Link para o comentário
Compartilhar em outros sites

  • 0

Programador, o Fileexists, era exatamente o que eu estava procurando...

eu já tinha tentado tudo quanto é nome para ver se existia "tal" ação, mas não consegui.

Muito Obrigado!!

resolveu meu problema 100%.

Agora, me ficou restante, minha opendialog aceitar além de .bmp, jpeg também.

Caso, você tenha algo em mente , por favor:

Aqui está o código usado.


procedure TFormTCadCF.SpeedButton1Click(Sender: TObject);
var BMP: TBitMap;
begin
BMP := TBitMap.Create;
openpicturedialog1.Execute;
if openpicturedialog1.FileName <> '' then
begin
BMP.LoadFromFile(openpicturedialog1.filename);
image2.picture.bitmap := bmp;
end


end;

* Queria agradecer vocês todos que colaboram com todos os iniciantes, e veteranos também, a resolverem problemas, que não são da conta de vocês, gratuitamente.

Espero que continuem assim, e, queria lhes dizer que me ajudaram muito, e continuam ajudando.

Sinceros Abraços a todos vocês.

OBS: Fico meio gay?, é... acho que sim, "malz"... eu arrumo outra hora hauasheaasueha !

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...