Fórum Carregar Imagem PNG #479239

16/05/2014

0

Colegas estou com um problema tenho uma variavel Imagem do tipo TPNGImage,

e quero passar a imagem do meu banco para essa variável alguém tem alguma ideia todos os métodos q usei deu erro.
Laelson Fagundes

Laelson Fagundes

Responder

Posts

16/05/2014

Francisco Sobrinho

Olá amigo,
a imagem está salva no banco de dados?

Veja se esta solução do robinhocne te atende:
https://www.devmedia.com.br/forum/ler-imagem-do-banco-firebird-blob/385700
Responder

Gostei + 0

18/05/2014

Laelson Fagundes

como eu disse no tipoco a imagem é PNG e o link m direciona para bmp e jpg
Responder

Gostei + 0

20/05/2014

Cauê Nishijima

Não cheguei a testar no Delphi mas é uma adaptação de um código meu:

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
procedure carregaPNG(field: TField; img: TPNGImage)
var
  BlobStream: TStream;
begin
  if field.IsNull then
  begin
    FreeAndNil(img);
    img := TPNGImage.Create;
  end
  else
  begin
    BlobStream := field.DataSet.CreateBlobStream(field, bmRead);
    try
      if BlobStream.Size <> 0 then
        img.LoadFromStream(BlobStream)
      else
      begin
        FreeAndNil(img);
        img := TPNGImage.Create;
      end;
    finally
      FreeAndNil(BlobStream);
    end;
  end;
end;



Qualquer coisa manda mensagem
Responder

Gostei + 0

20/05/2014

Wijloc

a solução do Cauê é válida... o Stream é como se você criasse o arquivo em memória
Responder

Gostei + 0

20/05/2014

Laelson Fagundes

Cauê Nishijima vou testar amanha no trabalho e responde aqui se deu certo
vlw
Responder

Gostei + 0

21/05/2014

Laelson Fagundes

Caue tenho duas Duvidas em relação seu codigo eu tenho que passar a Imagem que esta no Banco para uma Variavel do TPNGImage da forma que esta na procedure eu não vou conseguir

Outra coisa Como Usar a procedure eu teria q colocar um Timagem? eu fiquei meio perdido.
Responder

Gostei + 0

21/05/2014

Cauê Nishijima

Quem sabe com um exemplo de utilização fique mais fácil.

1
2
3
4
5
6
7
8
9
10
11
12
13
procedure Tform1.btn1Click(Sender: TObject);
var
   foto: TPNGImage;
begin
   foto := TPNGImage.Create;
 
   // Onde cdsConsulta é um TClientDataSet no qual esta a consulta, podendo usar outro componente
   // contanto que retorne um objeto do tipo TField
   carregaPNG(cdsConsultaFoto, foto);
 
   //Atribui a imagem a um TImage
   Image1.Picture.Assign(foto);
end;
Responder

Gostei + 0

27/05/2014

Nelson Santos

ganhe dinheiro com softwares 3D em Delphi 7
http://www.3dsistemas.com.br
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar