使用编码算法嵌入图像

使用编码算法嵌入图像

朋友们,有时我不得不创建一个独立的 PHP 脚本。这意味着由于某些编码/解码算法(如 Base64),PHP 脚本中可以包含任何文件。例如,此代码这是此小图像的 Base64 编码:巴西

当然,在这个特殊情况下,PHP 可以处理这个巨大的编码字符串,因为它捆绑了一个base64_解码()功能。

我想知道这个想法是否可以通过 TeX/LaTeX 实现。我需要指出的是,我只是对这个问题很好奇,而不是我想在代码中嵌入任何东西。此外,正如您所指出的,编码字符串是巨大的,这肯定会让人痛哭流涕。

我看到的一个可能的解决方案是,如果有人在 TeX/LaTeX 中实现编码/解码算法,例如\base64_decode,那么就有可能使用类似这样的代码:\includegraphics{\base64_decode{\myhugeunreadablestring}}。抱歉,我晕了,但我真的很好奇这个疯狂的代码是如何工作的。=)

答案1

据我所知,TeX 无法写入二进制内容,因此即使您实现了 base64 解码函数,也无法将其直接写入外部文件或(例如PDF 对象)。但是,如果您在环境中拥有基于文本的 base64 代码(例如,另请参阅扩展此环境的包) \pdfobj,则可以将其写入文件,然后命令行工具将其转换为二进制图像,然后正常包含。您可以使用if调用命令行工具,或者使用外部脚本或 Makefile 来执行此操作。filecontentsfilecontents\write18-shell-escape

答案2

正如@Martin Scharrer 所说,从 LaTeX 编写二进制文件很困难(如果文件格式不能以换行符结尾,则是不可能的)。

但是,PDF 文件只能使用基本的 ASCII 字符来编写,我相信 eps 图像也是如此。因此,您可以使用过滤器将图像数据作为十六进制 blob 写入 ASCII PDF 文件/ASCIIHexDecode,然后再将该图像包含回来。

相关内容