2012-11-16 61 views

回答

8

我建议你做到以下几点:

  1. 保存到内存流。使用TMemoryStream,并在位图上调用SaveToStream。
  2. 压缩流,也许使用zlib单元。这一步是可选的。
  3. 使用base64对流进行编码。例如,您可以使用Soap.EncdDecd提供的功能。

而在相反的方向,以及你只是扭转步骤。

+1

+1这正是我正在寻找的!谢谢大卫! – jpfollenius

0

您可以简单地使用Win32.WriteFile将位图缓冲区写入文件。

+0

这将写入二进制数据...我特意询问了关于文本文件 – jpfollenius

+0

我seeeee!那么David的解决方案就是完美的! –

3

文本DFM使用BinToHex()函数来格式化二进制数据。

+0

+1,因为这实际上回答了问题。 –

+0

人们不知道他们为什么使用这种低效的编码。 –

+0

简单性和向后兼容性,我想。它不像文本输出被实际编译的可执行文件使用,因为它不是。它仅由IDE和编译器使用,因此比其他压缩格式更容易解析简单的十六进制。存储空间很便宜。 –