Fórum Delphi 10 Transformar base64 em imagem #585113
22/08/2017
0
Como posso transformar base64 em objeto tipo Image ou Bitmap. Muitas publicações existem, mas que nada me adiantaram, a imagem vem em arquivo JSON encoded base64 de um aplicativo mobile android,
só que toda vêz que tento converter dá erro na gravação desta imagem
Alguém já passou por isso?
só que toda vêz que tento converter dá erro na gravação desta imagem
Alguém já passou por isso?
Jair N.
Curtir tópico
+ 0
Responder
Post mais votado
22/08/2017
Jair, tudo bom.
Já vi esta situação, um sistema que desenvolvi, não tenho os fontes, mais ou menos assim que resolvi, o programa só que da internet grava no Banco uma imagem em 64 e recupero no sistema em delphi, não sei se o código era exatamente este porem poderá te auxiliar.
http://www.scriptcase.com.br/forum/index.php?topic=13475.0
Já vi esta situação, um sistema que desenvolvi, não tenho os fontes, mais ou menos assim que resolvi, o programa só que da internet grava no Banco uma imagem em 64 e recupero no sistema em delphi, não sei se o código era exatamente este porem poderá te auxiliar.
http://www.scriptcase.com.br/forum/index.php?topic=13475.0
Luiz Vichiatto
Responder
Gostei + 1
Mais Posts
23/08/2017
Jair N.
Obrigado pela sua resposta vou verificar aqui, mas acredito que como não existe a interação com o banco de dados "as imagens" apenas salvas em diretório pré definido, e que estou tentando utilizar o componente de conversão para string "TidDecodeMME" 64
function TFormConexaoconfiguracao.BitmapFromBase64(const base64: string): TBitmap;
var
Input: TStringStream;
Output: TBytesStream;
t : TStream;
begin
Input := TStringStream.Create(base64, TEncoding.ASCII);
// Input := TStringStream.Create(base64, TEncoding.UTF8);
IdDecoderMIME64.DecodeStream(base64,Output);
try
Output := TBytesStream.Create;
try
// Soap.EncdDecd.DecodeStream(Input, Output);
IdDecoderMIME64.DecodeStream(base64,Output);
Output.Position := 0;
Result := TBitmap.Create;
try
Result.LoadFromStream(Output);
except
{está cainda na exceção}
Result.Free;
raise;
end;
finally
Output.Free;
end;
finally
Input.Free;
end;
end;
function TFormConexaoconfiguracao.BitmapFromBase64(const base64: string): TBitmap;
var
Input: TStringStream;
Output: TBytesStream;
t : TStream;
begin
Input := TStringStream.Create(base64, TEncoding.ASCII);
// Input := TStringStream.Create(base64, TEncoding.UTF8);
IdDecoderMIME64.DecodeStream(base64,Output);
try
Output := TBytesStream.Create;
try
// Soap.EncdDecd.DecodeStream(Input, Output);
IdDecoderMIME64.DecodeStream(base64,Output);
Output.Position := 0;
Result := TBitmap.Create;
try
Result.LoadFromStream(Output);
except
{está cainda na exceção}
Result.Free;
raise;
end;
finally
Output.Free;
end;
finally
Input.Free;
end;
end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)