Ir para conteúdo
  • Cadastre-se

dev botao

base64 para componente timage


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

Recommended Posts

Postado

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;

 

 

Postado

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;

 

  • Solution
Postado

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: 

 

  • Este tópico foi criado há 707 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.