如何将Bitmap位图与base64字符串相互转换

高分请教下,如何将Bitmap位图与base64字符串相互转换
最新回答
沒伱的地方

2024-05-09 19:13:56

先引用delphi自带的单元

uses EncdDecd;

///将Bitmap位图转化为base64字符串

function BitmapToString(img:TBitmap):string ;

var

ms:TMemoryStream;

ss:TStringStream;

s:string;

begin

ms := TMemoryStream.Create;

img.SaveToStream(ms);

ss := TStringStream.Create('');

ms.Position:=0;

EncodeStream(ms,ss);//将内存流编码为base64字符流

s:=ss.DataString;

ms.Free;

ss.Free;

result:=s;

end;

///将base64字符串转化为Bitmap位图

function StringToBitmap(imgStr:string):TBitmap;

var ss:TStringStream;

ms:TMemoryStream;

bitmap:TBitmap;

begin

ss := TStringStream.Create(imgStr);

ms := TMemoryStream.Create;

DecodeStream(ss,ms);//将base64字符流还原为内存流

ms.Position:=0;

bitmap := TBitmap.Create;

bitmap.LoadFromStream(ms);

ss.Free;

ms.Free;

result :=bitmap;

end;