Fórum DBIMAGE LER JPG #444474
01/06/2013
0
Ola Galera,
estou precisando resgatar umas fotos no meu banco de dados (FIREBIRD) para que seja exibida em um dbimage, só que esta dando erro, li alguns fóruns que algumas pessoas dizem que não é possível. Existe alguma forma pelo Delphi 7 de mostrar imagens salvas no BD em formato JPG na tela?
Vlw!
estou precisando resgatar umas fotos no meu banco de dados (FIREBIRD) para que seja exibida em um dbimage, só que esta dando erro, li alguns fóruns que algumas pessoas dizem que não é possível. Existe alguma forma pelo Delphi 7 de mostrar imagens salvas no BD em formato JPG na tela?
Vlw!
Dennis Sobral
Curtir tópico
+ 0
Responder
Posts
01/06/2013
Wilton Júnior
Sim amo existe toda o campo que vc vai salvar a imagem te que ser do tipo blob subtype 1 se não me falha memoria.
O firebird grava até o capeta se precisar, mas vc deve testa a leitura com imagem jpg se tiver dando erro vc tem que gravar no banco de dados a imagem como bmp para que DBimage possa ler.
Procura no google e tem um monte de modelo que ja vi de cabeça agora não sei te falar como faz para gravar imagem no dbimage do delphi vc vera que maioria das vezes ele transforma qualquer imagem em jpg e outra deve usar a biblioteca jpg
declare ela no uses.
espero te ajudado.
O firebird grava até o capeta se precisar, mas vc deve testa a leitura com imagem jpg se tiver dando erro vc tem que gravar no banco de dados a imagem como bmp para que DBimage possa ler.
Procura no google e tem um monte de modelo que ja vi de cabeça agora não sei te falar como faz para gravar imagem no dbimage do delphi vc vera que maioria das vezes ele transforma qualquer imagem em jpg e outra deve usar a biblioteca jpg
declare ela no uses.
espero te ajudado.
Responder
Gostei + 0
01/06/2013
Claudia Nogueira
Você tem que usar um TImage, e depois uma função pra carregar a imagem do banco nesse TImage.
Declare Jpeg nos uses, coloque um componente TImage e mude o nome pra Imagem, coloque um componente TIBQuery e deixe o nome IBQuery1.
Declare a procedure:
Coloque essa procedure em algum lugar, onde você a declarou:
Depois chame a procedure:
Obs.: Coloque o SELECT com o campo e tabela, assim como a filtragem necessária para localizar a imagem desejada.
Declare Jpeg nos uses, coloque um componente TImage e mude o nome pra Imagem, coloque um componente TIBQuery e deixe o nome IBQuery1.
Declare a procedure:
procedure CarregaImagem(iboQryTabelaImagem : TIBQuery; iboCampoImagem : TBlobField; bBMP : Boolean = False);
Coloque essa procedure em algum lugar, onde você a declarou:
procedure TForm1.CarregaImagem(iboQryTabelaImagem : TIBQuery; iboCampoImagem : TBlobField; bBMP : Boolean);
var
BlobStream: TStream;
JPEGImage: TJPEGImage;
MS: TMemoryStream;
begin
if iboCampoImagem.BlobSize <> 0 then
begin
if bBMP then
begin
BlobStream := iboQryTabelaImagem.CreateBlobStream(iboCampoImagem, bmRead);
try
Imagem.Picture.Bitmap.LoadFromStream(BlobStream);
finally
BlobStream.Free;
end;
end
else
begin
try
MS := TMemoryStream.Create;
iboCampoImagem.SaveToStream(MS);
JPEGImage := TJPEGImage.Create;
JPEGImage.Assign( iboCampoImagem );
Imagem.Picture.Assign( JPEGImage );
finally
MS.Free;
JPEGImage.Free;
end;
end;
end
else
Imagem.Picture := nil;
end;
Depois chame a procedure:
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('SELECT IMAGEM FROM PRODUTO');
IBQuery1.Open;
if IBQuery1.IsEmpty then
Exit;
CarregaImagem(IBQuery1,TblobField(IBQuery1.FieldByName('IMAGEM')));
Obs.: Coloque o SELECT com o campo e tabela, assim como a filtragem necessária para localizar a imagem desejada.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)