gravar imagem
bom dia!
Gostaria de saber, como consigo, pegar uma imagem, do componente image, e gravar no banco de dados?
Obrigado
Gostaria de saber, como consigo, pegar uma imagem, do componente image, e gravar no banco de dados?
Obrigado
Airto
Curtidas 0
Respostas
Massuda
22/02/2005
Esta procedure copia uma imagem para um campo BLOB:Para copiar uma imagem em um TImage para um campo BLOB:
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
Airto
22/02/2005
estou usando o componente ahacquireimage, para scannear, quando e dado o post, para efetuar a gravaço esta retornando acess violation 40003C52, o bde já alterei o blobs to cache para 10000 e blobs do size para 10000
teria um outro problema?
Obrigado
teria um outro problema?
Obrigado
GOSTEI 0
Technos
22/02/2005
Amigo, eu aconselho voce gravar o caminho para essas imagens.
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
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
Massuda
22/02/2005
estou usando o componente ahacquireimage, para scannear, quando e dado o post, para efetuar a gravaço esta retornando acess violation 40003C52...
Você poderia postar o código que você está usando e, se possível, indicar onde está ocorrendo o erro?GOSTEI 0
Tnaires
22/02/2005
Esta procedure copia uma imagem para um campo BLOB:Para copiar uma imagem em um TImage para um campo BLOB:
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
Tnaires
22/02/2005
Afe Maria, eu e essa minha mania d perguntar antes d pensar...
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...
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
Massuda
22/02/2005
Afe Maria, eu e essa minha mania d perguntar antes d pensar...
Acontece nas melhores famílias! :lol: Se alguém souber algum código para salvar qq tipo d imagem, pelamordedeus divulgue no fórum...
Se não me engano, para ter suporte a JPEG, basta incluir a unit JPEG (ou JPG?) no uses da sua unit. Essa unit costuma vir no CD do Delphi (mas não faz parte da instalação normal) e está (acho) no diretório Extras.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
Airto
22/02/2005
o problema e o seguinte....scaneo a nota fiscal, no formato jpg, até funcionando normal...na hora de executar o post, que retorna o acess violation,
quando não gravo a imagem, so os demais campos,,,grava normal, quando tento gravar a imagem que retorna o erro?
Obrigado
quando não gravo a imagem, so os demais campos,,,grava normal, quando tento gravar a imagem que retorna o erro?
Obrigado
GOSTEI 0
Massuda
22/02/2005
... na hora de executar o post, que retorna o acess violation ...
AV geralmente ocorre se você estiver tentando usar um objeto que já não existe ou que ainda não foi criado. Por exemplo, quando você tenta postar a imagem no DB, o componente que contem a imagem ainda existe?Será que você poderia postar o código para que todos possam dar uma olhada?
GOSTEI 0
Aroldo Zanela
22/02/2005
Colega,
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.
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
Kapak
22/02/2005
Experimente utilizar SaveToStream de TGraphic e não TBitmap.
Troque:
Picture.Bitmap.SaveToStream
por:
Picture.Graphic.SaveToStream
Troque:
Picture.Bitmap.SaveToStream
por:
Picture.Graphic.SaveToStream
GOSTEI 0
Gustavo_pacheco
22/02/2005
A Jedi VCL possui diversos componentes para manipular vários formatos de imagens (conversão e visualização).
Alguma dica de qual componente utilizar?
GOSTEI 0
Gustavo_pacheco
22/02/2005
Sobe
GOSTEI 0
Gustavo_pacheco
22/02/2005
Sobe
GOSTEI 0