📄 imagebase64.pas
字号:
unit ImageBase64;
interface
uses Classes,Graphics,ExtCtrls,Jpeg, IdCoderMIME;
function Image2Base64(const image:TGraphic; var base64Str:string):integer;
{
输入参数:
image:图片
输出参数:
base64Str:Base64字符串
返回值:
-1:没有图片
0:成功
}
function Base642Image(image:TGraphic; const base64Str:string):integer;
{
输入参数:
base64Str:Base64字符串
输出参数:
image:图片
返回值:
-1:base64字符串为空
0:成功
}
implementation
function Image2Base64(const image:TGraphic; var base64Str:string):integer;
var
stream:TMemoryStream;
encode64:TIdEncoderMIME;
begin
if (image = nil) or (image.Empty) then
begin
Result:=-1;
Exit;
end;
stream:=TMemoryStream.Create;
try
encode64:=TIdEncoderMIME.Create(nil);
try
// encode64.FillChar:=#0;
image.SaveToStream(stream);
stream.Position:=0;
base64Str:=encode64.Encode(stream);//,stream.Size);
finally
encode64.Free;
end;
finally
stream.Free;
end;
Result:=0;
end;
function Base642Image(image:TGraphic; const base64Str:string):integer;
var
stream:TMemoryStream;
decode64:TIdDecoderMIME;
jpegImg:TImage;
begin
if (base64Str='') then
begin
Result:=-1;
Exit;
end;
jpegImg:=TImage.Create(nil);
stream:=TMemoryStream.Create;
try
decode64:=TIdDecoderMIME.Create(nil);
try
// decode64.FillChar:=#=;
decode64.DecodeToStream(base64Str,stream);
stream.Position:=0;
image.LoadFromStream(stream);
finally
jpegImg.Free;
decode64.Free;
end;
finally
stream.Free;
end;
Result:=0;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -