Fórum gravar imagem #269645
22/02/2005
0
Gostaria de saber, como consigo, pegar uma imagem, do componente image, e gravar no banco de dados?
Obrigado
Airto
Curtir tópico
+ 0Posts
22/02/2005
Massuda
procedure SalvaImagemNoBlob(AImage: TImage; ABlob: TBlobField); var Stream: TMemoryStream; begin Stream := TMemoryStream.Create; try AImage.Picture.Bitmap.SaveToStream(Stream); Stream.Position := 0; ABlob.LoadFromStream(Stream); finally Stream.Free; end; end;
SalvaImagemNoBlob(SeuImage, SeuCampoBlob);
Gostei + 0
22/02/2005
Airto
teria um outro problema?
Obrigado
Gostei + 0
22/02/2005
Technos
Tipow, uma string sacou ?
É Melhor, mais fácil e mais rápido, além de nao sobrecarregar o BD com imagens grandes.
Apenas o caminho, pensse nisso.
Se tiver dúvidas, fala aee que agente resolve.
Technos :D
Gostei + 0
22/02/2005
Massuda
Gostei + 0
22/02/2005
Tnaires
procedure SalvaImagemNoBlob(AImage: TImage; ABlob: TBlobField); var Stream: TMemoryStream; begin Stream := TMemoryStream.Create; try AImage.Picture.Bitmap.SaveToStream(Stream); Stream.Position := 0; ABlob.LoadFromStream(Stream); finally Stream.Free; end; end;
SalvaImagemNoBlob(SeuImage, SeuCampoBlob);
Caro Massuda, para quais tipos de imagem esse código é válido?
Abraços
Gostei + 0
22/02/2005
Tnaires
Respondendo a minha pergunta :oops: , esse código é válido para os tipos d imagem q um componente TImage suporta. Ou seja, nada feito para JPEGs, GIFs ou PNGs...
Se alguém souber algum código para salvar qq tipo d imagem, pelamordedeus divulgue no fórum...
Gostei + 0
22/02/2005
Massuda
Para outros formatos, experimente usar a biblioteca [url=http://www.soft-gems.net/Graphics.php#GraphicEx]GraphicEx[/url] (freeware com source).
Em ambos os casos, basta incluir as units no uses de sua unit, que automagicamente o TImage passa a suportar novos formatos de imagens.
Gostei + 0
23/02/2005
Airto
quando não gravo a imagem, so os demais campos,,,grava normal, quando tento gravar a imagem que retorna o erro?
Obrigado
Gostei + 0
23/02/2005
Massuda
Será que você poderia postar o código para que todos possam dar uma olhada?
Gostei + 0
23/02/2005
Aroldo Zanela
Qual é o banco de dados que você está utilizando? Acredito que seu problema está em visualizar a imagem e não em armazenar, pois o objeto TField encapsula toda a ´complexidade´ para a gravação por meio dos métodos LoadFrom<X>. A Jedi VCL possui diversos componentes para manipular vários formatos de imagens (conversão e visualização). A propósito, a JPEG.DCU fica no diretório LIB padrão.
Gostei + 0
23/02/2005
Kapak
Troque:
Picture.Bitmap.SaveToStream
por:
Picture.Graphic.SaveToStream
Gostei + 0
30/03/2005
Gustavo_pacheco
Alguma dica de qual componente utilizar?
Gostei + 0
30/03/2005
Gustavo_pacheco
Gostei + 0
04/04/2005
Gustavo_pacheco
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)