memorystream base64
function
BaseImage(fn:
string
):
string
;
var
m1: TMemoryStream;
m2: TStringStream;
str:
string
;
begin
m1 := TMemoryStream
.
Create;
m2 := TStringStream
.
Create;
m1
.
LoadFromFile(fn);
EncdDecd
.
EncodeStream(m1, m2);
// 将m1的内容Base64到m2中
str := m2
.
DataString;
str := StringReplace(str, #
13
,
''
, [rfReplaceAll]);
// 这里m2中数据会自动添加回车换行,所以需要将回车换行替换成空字符
str := StringReplace(str, #
10
,
''
, [rfReplaceAll]);
result := str;
// 返回值为Base64的Stream
m1
.
Free;
m2
.
Free;
end
;
filestream base64
需要uses IdCoderMIME;
function TForm1.Base64E(Path: string): string;
varfilepath: string;filestream: TFileStream;EncoderMIME: TIdEncoderMIME;encode_result: string;beginEncoderMIME := TIdEncoderMIME.Create(self);filestream := TFileStream.Create(Path, fmOpenRead);result := EncoderMIME.Encode(filestream);filestream.Free;end;