Para guardar una imagen como texto tienes que utilizar algún formato como Base64:
Código Delphi
[-]uses
Classes, SysUtils, JPEG, PNGImage, Vcl.Imaging.pngimage, Soap.EncdDecd;
procedure ImagenAGuardarComoTexto(const FileName, TextoFile: string);
var
Img: TPicture;
Stream: TMemoryStream;
Texto: TStringList;
Base64Str: string;
begin
Img := TPicture.Create;
Stream := TMemoryStream.Create;
Texto := TStringList.Create;
try
Img.LoadFromFile(FileName);
Img.Graphic.SaveToStream(Stream);
Stream.Position := 0;
Base64Str := EncodeBase64(Stream.Memory, Stream.Size);
Texto.Text := Base64Str;
Texto.SaveToFile(TextoFile);
finally
Img.Free;
Stream.Free;
Texto.Free;
end;
end;
Para recuperarla:
Código Delphi
[-]procedure TextoAGuardarComoImagen(const TextoFile, FileName: string);
var
Stream: TMemoryStream;
Texto: TStringList;
Img: TPicture;
Bytes: TBytes;
begin
Stream := TMemoryStream.Create;
Texto := TStringList.Create;
Img := TPicture.Create;
try
Texto.LoadFromFile(TextoFile);
Bytes := DecodeBase64(Texto.Text);
Stream.WriteBuffer(Bytes[0], Length(Bytes));
Stream.Position := 0;
Img.LoadFromStream(Stream);
Img.SaveToFile(FileName);
finally
Stream.Free;
Texto.Free;
Img.Free;
end;
end;