我有一个图像,我想在文本文件中上传这个图像。我有什么方法可以用Delphi来做。考虑图像是条形码图像,我希望此图像位于文本文件中的特定位置。然后将此文本文件上传到报告查看器,以报告格式打印它。
答案 0 :(得分:1)
如果'文本文件'只是一种交换格式,您可以将图片编码为十六进制或Base64编码(使用的空间更少)。
你在Classes单元中有BinToHex和HexToBin函数。
例如:
function SaveAsText(Bmp: TBitmap): AnsiString;
var MS: TMemoryStream;
begin
MS := TMemoryStream.Create;
try
Bmp.SaveToStream(MS);
SetLength(result,MS.Size*2);
BinToHex(MS.Memory,pointer(result),MS.Size);
finally
MS.Free;
end;
end;
procedure LoadFromText(Bmp: TBitmap; const Text: AnsiString);
var MS: TMemoryStream;
begin
MS := TMemoryStream.Create;
try
MS.Size := length(Text) shr 1;
HexToBin(pointer(Text),MS.Memory,MS.Size);
Bmp.LoadFromStream(MS);
finally
MS.Free;
end;
end;
这是使用的方法,例如通过MIME格式将二进制文件附加到电子邮件(使用Base64编码)。电子邮件只是一些文字。您可能必须在hexa / base64文本之前和之后添加一些分隔符,就像MIME一样,以标记这是一些数据,而不是文本。