Ir para conteúdo
  • Cadastre-se

dev botao

base64 para componente timage


Ver Solução Respondido por felipeiw,
  • Este tópico foi criado há 505 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

boa noite

pessoal tenho em uma tabela FB um campo blob, nele estou salvando uma foto que recebo por json em formato base64, se eu pego essa string, e colo por exemplo num site que converte base64 para imagem, a foto aparece, porem nao estou conseguindo visualizar essa foto no componente timage.

estou tentando usar esse código abaixo, o erro ocorre na linha: BMPImage.LoadFromStream(BlobStream), com o erro bitmap image is not valid

var
BlobStream : TStream;
BMPImage : TBitMap;
begin
if CdsNotasLidasFOT001.BlobSize <> 0 then
begin
BlobStream:= CdsNotasLidas.CreateBlobStream(CdsNotasLidasFOT001,bmRead);
BMPImage := TBitMap.Create;
try
BMPImage.LoadFromStream(BlobStream);
Image1.Picture.Assign(BMPImage);
finally
BlobStream.Free;
BMPImage.Free;
end;
end
else Image1.Picture:=nil;
end;

 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Ele é um bitmap mesmo ou é outra extensão?

pega o arquivo gerado e abre em um editor de texto ou hexa e veja os 3 primeiros caracteres que mostra a extensão

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

Ola Juliomar esta assim:

iVBORw0KGgoAAAANSUhEUgAA

talvez eu esteja gerando errado no app ? Esse codigo que estou gerando no app, a foto é tirada pelo celular.

        StreamIn := QConsulta.CreateBlobStream(QConsulta.FieldByName('FOTVOL'),bmRead);
        StreamOut := TStringStream.Create;

        TNetEncoding.Base64.Encode(StreamIn, StreamOut);
        StreamOut.Position := 0;
        xfotvol := StreamOut.DataString;

        StreamIn.DisposeOf;
        StreamOut.DisposeOf;

 

Link para o comentário
Compartilhar em outros sites

  • Solution

Pessoal consegui usando o seguinte codigo:

var
  Input,Output: TStringStream;
begin
  if (Length1(foto) = 0) then
  begin
    IMGFoto.Picture := nil;
    Exit;
  end;

  Input := TStringStream.Create(foto);
  Output := TStringStream.Create;
  try
    Input.Position := 0;
    TNetEncoding.Base64.Decode(Input,Output);
    Output.Position := 0;
    IMGFoto.Picture.LoadFromStream(Output);
  finally
    Input.Free;
    Output.Free;
  end;

 

crédito a esse video: 

 

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 505 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.