Carregar Imagem PNG

Delphi

16/05/2014

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

Curtidas 0

Respostas

Francisco Sobrinho

Francisco Sobrinho

16/05/2014

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
GOSTEI 0
Laelson Fagundes

Laelson Fagundes

16/05/2014

como eu disse no tipoco a imagem é PNG e o link m direciona para bmp e jpg
GOSTEI 0
Cauê Nishijima

Cauê Nishijima

16/05/2014

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


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
GOSTEI 0
Wijloc

Wijloc

16/05/2014

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

Laelson Fagundes

16/05/2014

Cauê Nishijima vou testar amanha no trabalho e responde aqui se deu certo
vlw
GOSTEI 0
Laelson Fagundes

Laelson Fagundes

16/05/2014

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.
GOSTEI 0
Cauê Nishijima

Cauê Nishijima

16/05/2014

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


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;

GOSTEI 0
Nelson Santos

Nelson Santos

16/05/2014

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