作者:豬仔珊珊_114 | 来源:互联网 | 2023-05-19 17:43
在某处我找到了将BitMap转换为字符串的代码:
function Base64FromBitmap(Bitmap: TBitmap): string;
var
Input: TBytesStream;
Output: TStringStream;
begin
Input := TBytesStream.Create;
try
Bitmap.SaveToStream(Input);
Input.Position := 0;
Output := TStringStream.Create('', TEncoding.ASCII);
try
Soap.EncdDecd.EncodeStream(Input, Output);
Result := Output.DataString;
finally
Output.Free;
end;
finally
Input.Free;
end;
end;
但是,这会给回一块包裹的线条.是否可以获得一条没有换行符的单行?
1> Remy Lebeau..:
Soap.EncdDecd.EncodeStream()
是硬编码的,每75个字符输出一次换行符.更改它的唯一方法是复制Soap.EncdDecd.pas
,编辑它,然后将副本添加到项目中(如果您的项目启用了运行时包,则此方法不起作用).
您可以使用Indy的TIdEncoderMIME
课程作为替代.它不输出换行符:
uses
..., IdCoderMIME;
function Base64FromBitmap(Bitmap: TBitmap): string;
var
Input: TMemoryStream;
begin
Input := TMemoryStream.Create;
try
Bitmap.SaveToStream(Input);
Input.Position := 0;
Result := TIdEncoderMIME.EncodeStream(Input);
finally
Input.Free;
end;
end;