



Recuperar uma imagem jpg contida em um campo blob?
Neste exemplo, uma imagem é carregada de um campo blob e exibida em um TImage.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | // É necessário estar declarado jpeg, Classes e DB { Em versões mais recentes, declare Vcl.Imaging.jpeg, System.Classes e Data.DB } procedure RefreshImage(Field : TField; Img : TImage); var vJpeg : TJPEGImage; vStream : TMemoryStream; begin { Verifica se o campo esta vázio. } if not Field.IsNull then begin { Cria objeto do tipo TJPEG, e objeto do tipo MemoryStream} vJpeg := TJPEGImage.Create; vStream := TMemoryStream.Create; { Trata o campo como do tipo BLOB e salva o seu conteudo na memória. } TBlobField(Field).SaveToStream(vStream); { Ajusta a posicao inicial de leitura da memória } vStream.Position := 0; { Carrega da memoria os dados, para uma estrutura do tipo TJPEG (A partir da posicao 0)} vJpeg.LoadFromStream(vStream); { Exibe o jpg no Timage. } Img.Picture.Assign(vJpeg); { Libera a memoria utilizada pelos componentes de conversão } vJpeg.Free; vStream.Free; end; end; // Exemplo de uso procedure TForm1.Button1Click(Sender: TObject); begin RefreshImage(DataSet1.FieldByName('LOGOTIPO'), ImgLogotipo); end; |
Dúvidas ou sugestões, deixe nos comentários do post.
Você precisa fazer o login para publicar um comentário.
Obrigado!!
Usei e funcionou!!!
Olá, gostaria de saber onde saiu esse ImgLogotipo no final?