Com estas funções pode converter uma imagem inserida num Timage em Base64 e converter um Base64 em Imagem.
uses
System.SysUtils,
System.Classes,
FMX.Graphics,
Soap.EncdDecd;
function Base64FromBitmap(Bitmap: TBitmap): string;
var
Input: TBytesStream;
Output: TStringStream;
F: TextFile; // Apenas para exemplo
begin
Input := TBytesStream.Create;
try
Bitmap.SaveToStream(Input);
Input.Position := 0;
Output := TStringStream.Create('', TEncoding.ASCII);
try
Soap.EncdDecd.EncodeStream(Input, Output);
Result := Output.DataString;
//Criar um ficheiro txt com o codigo base 64 apenas para exemplo
AssignFile(f,'imagem.txt');
Rewrite(f); //abre o arquivo para escrita
Writeln(f,Result);
Closefile(f);
finally
Output.Free;
end;
finally
Input.Free;
end;
end;
function BitmapFromBase64(const base64: string): TBitmap;
var
Input: TStringStream;
Output: TBytesStream;
begin
Input := TStringStream.Create(base64, TEncoding.ASCII);
try
Output := TBytesStream.Create;
try
Soap.EncdDecd.DecodeStream(Input, Output);
Output.Position := 0;
Result := TBitmap.Create;
try
Result.LoadFromStream(Output);
except
Result.Free;
raise;
end;
finally
Output.Free;
end;
finally
Input.Free;
end;
end;
COMO USAR A FUNÇÃO
Crie um Timage e atribua uma imagem .
Crie um Botão e na função click insira o seguinte codigo.
procedure btconverterimagemClick(Sender: TObject);
begin
showmessage(Base64FromBitmap(nomedoTimage.Bitmap));
end;
Simples, prático e funcional...
ResponderEliminarUtilizo para transferência de dados compactados entre Cliente e Serve.
ResponderEliminarMuito útil.
Primeiramente parabéns pelas funções.Tenho um campo blob para imagem no banco Firebird e quero mostrar num Timage como faço usando estas funções.
ResponderEliminarComo Usar o function BitmapFromBase64(const base64: string): TBitmap;
ResponderEliminarNão consegui aqui.
NÃO FUNCIONA, é necessário saber qual header da imagem
ResponderEliminarHow to play 777 slots - Casino Roll
ResponderEliminar777 online slots 파라오 사이트 is a free demo version for 게임 사 online 토토사이트운영 slot game play. All 777 slots 벳인포승무패계산기 are available to play 망고도메인 for real money and will help you