Y la ultima variante es utilizando las funciones definidas en la unidad Soap.EncdDecd:
Código Delphi
[-]
var
AMemStream: TMemoryStream;
AStreamBase64, ADecodedStream: TStringStream;
ABase64, DecodedBase64: string;
begin
AMemStream := TMemoryStream.Create;
AStreamBase64 := TStringStream.Create;
try
imLoad.Picture.Bitmap.SaveToStream(AMemStream);
AMemStream.Position := 0;
EncodeStream(AMemStream, AStreamBase64);
AStreamBase64.Position := 0;
ABase64 := AStreamBase64.DataString;
finally
AStreamBase64.Free;
end;
DecodedBase64 := DecodeString(ABase64);
ADecodedStream := TStringStream.Create(DecodedBase64);
try
ADecodedStream.Position := 0;
imBase64.Picture.Bitmap.LoadFromStream(ADecodedStream);
finally
ADecodedStream.Free;
end;
Esta ultima fue la que logro replicar la imagen exactamente a como estaba antes; curioso que los componentes Indy tengan alguna falla
Las pruebas las hice con formato BMP