有什么办法可以将图像加载到Delphi中的文本文件中

时间:2011-03-15 15:01:42

标签: delphi

我有一个图像,我想在文本文件中上传这个图像。我有什么方法可以用Delphi来做。考虑图像是条形码图像,我希望此图像位于文本文件中的特定位置。然后将此文本文件上传到报告查看器,以报告格式打印它。

1 个答案:

答案 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一样,以标记这是一些数据,而不是文本。